Quest for PDA Utopia: Qtopia?
Like most geeks nowadays, I've been contemplating buying a PDA. I own a desktop and a laptop, but there's still that urge of having something in my pocket to play with wherever I go. I am not a big fan of Microsoft operating systems, so the WinCE platform wasn't really in play. I decided against the usual choice, a Palm, because it seemed too expensive for its limited hardware. For a while I toyed with idea of getting a Compaq iPAQ and installing Linux on it. Again, I decided I was too old and too lazy for compiling and recompiling drivers, adjusting applications and making the whole thing work, so I didn't get it after all.
And then, just as I was about to give up on my mission, Sharp came through with its Zaurus SL-5000D, a stylish, light, Palm-shaped device with a tiny pull-out keyboard, impressive hardware and a very reasonable price. And the best part: it is based on open-source embedded Linux. Trolltech, the company behind Qt, developed a windowing system and graphic user interface for Zaurus, called Qtopia, from scratch. To my satisfaction, I found that Qtopia provides a high-level graphical interface on top of Qt/Embedded, which directly interfaces with the framebuffer hardware device. Qtopia also provides an application layer with several services for application development. It was a dream come true and a neat present wrapped in one.
Qtopia hasn't just appeared from thin air. Trolltech already has made a name with its kick-ass GUI development toolkit, Qt, which has become the tool of choice for such undertakings as the open-source KDE desktop envrironment and also the selected library for many commercial applications. With the experience gained from that, they decided to step into the PDA arena with Qtopia, their own PDA environment, which is OS- and platform-independent, just as Qt is. Qtopia is not a direct competitor for Microsoft's WinCE, which is the operating system as well. But Qtopia is a perfect choice for vendors that have PDA hardware and an operating system, but need a graphical user interface.
And here's where Sharp comes into play. Sharp recently has unveiled its hot Zaurus SL-5000D PDA. The D stands for Developers' edition, because the device is not yet available for general consumers. They made a bold decision to equip the wonder with embedded Linux (from Lineo) for the operating system and use Qt/Embedded with Qtopia on top of it for the graphical user interface.
The purpose of this article is to get you started on the road to developing applications for Qtopia. The first steps are usually the hardest. Hopefully the information presented here will help you with the initial struggle of getting over the hump of setting up the development environment and getting through the first sample application. We will not cover the complete set of Qtopia classes, nor will we learn details of Qt toolkit for developing GUIs under Qtopia. Those subjects, unfortunately, are outside the scope of a magazine article, and besides, there is free documentation available on the Web.
You know how the Volkswagen folks put it: Drivers Wanted. Well, the same goes for Zaurus. The one thing that Qtopia lacks, in comparison to the WinCE environment and ubiquitous Palm devices, is applications. But Qtopia comes with these basic applications:
Personal Information Management suite: address book, to-do list and appointment calendar that can be synchronized with the Qt/Desktop client.
Internet suite: contains the Opera web browser and e-mail client with POP3 and SMTP support.
Multimedia application: player (MPEG-1/2 and MP3) and image viewer.
Miscellaneous : calculator; text editor; international clock with time zones; a package manager, used for installation and removal of software packages; and utilities, including the system info display and tools for setting time, power conservation features, network configuration and so on.
Games: contains clones of classics such as Asteroids, Solitaire and Minesweeper. Nice additional surprises are Scrabble, Mindbreaker, the Chinese game of Go and a few others.
Within the system application group is the terminal, giving you access to the bash shell and the file manager for traversing the directory structure.
Synchronization on the desktop side is done with Qt/Desktop. And here's a bit of irony: it only runs on the Windows platform, and I was not particularly impressed with it. The connection to the PDA was dropping randomly, and every now and then I had to restart Qt/Desktop to reestablish connection. But all is forgiven when Zaurus sits in a cradle connected to the USB port of a Windows 2000 host and gets its own IP address. A special driver is installed on the Windows 2000 host to support this additional network interface. According to Trolltech, the synchronization software will be available for Linux too when the final version of Qtopia is released.
Qtopia is still a very young platform, and applications are scarce. There is a good collection of packages for embedded Linux that will run on the Zaurus, such as Perl, Python, command-line tools and even server software, such as the Telnet dæmon and a web server (imagine hosting a web site on a PDA). But developers of additional GUI applications for Qtopia are still direly needed. Trolltech is jump-starting this with a worldwide contest for Qtopia applications that offers a grand prize of $10,000 US.