Qt ported to S60
Oct 21, 2008 — by LinuxDevices Staff — from the LinuxDevices Archive — 15 views[Updated Oct. 24] – Nokia-owned Qt Software has accomplished a “pre-release” of the Qt GUI toolkit for S60 phones. The free download means device developers will soon enjoy Qt's “cross-platform” promise: building binaries for all the most popular device OSes from a single source tree.
(Click for larger view of Qt running on various S60 devices)
In an interview, Qt Software CTO Benoit Schilling likened the release to an “alpha” version. However, he said Nokia plans to integrate Qt libraries with its Symbian-based S60 phone stack by Q2, 2009. He commented, “S60 will include Qt as a key component.”
Schilling said open source developers will then be able to use the open source version of Qt, combined with the open source version of Symbian (as well as free tools from Qt Software) to create applications that phone owners can download, install, and run on their S60 phones. “These applications will appear as any other application available for S60, such as those built on Open C/C++ (Story). They will be distributed in Nokia shops, by software vendors, and by open source community projects.”
Schilling added, “This is a good way to take an open source application, say from KDE or Linux-related projects, and also be able to get it to run on S60.”
Schilling was emphatic that despite being owned by Nokia, Qt Software will keep its commitment to other platforms, including Qt for embedded Linux and Windows Mobile, as well as Qt Extended (formerly Qtopia), which adds a window manager and application stack to the embedded Linux version. “The worst thing would be to focus on one vertical case, and lose the cross-platform value that Nokia purchased us for,” he said.
Schilling added that in fact, porting to S60 would result in architectural improvements to Qt for all supported targets. “Every time we support a new platform, we learn a lot from it,” he observed.
Asked about differences between the desktop and device versions of Qt, Schilling noted that “the API is the API,” regardless of the deployment target. However, on each platform, developers are free to invoke the target's native APIs as needed, which creates some inherent differences — support for Visual Studio tools on Windows Mobile, for example. “We are not out to completely encapsulate the native API,” he explained. “If you need to support an IEEE1394 camera, and there is no support in Qt for that on your platform's version of Qt, you can call the native APIs.”
Asked about Qt's footprint, Schilling said a non-optimized, non-webkit version of Qt would require about 22MB in terms of footprint. However, applications that link in only the core widget set may gain as little as 2MB, he said. And, obviously, applications can also dynamically link to the libraries, on platforms such as future versions of S60 that will come standard with the libraries.
Here's a breakdown of Qt 4.4.4 component footprints, when compiled for X11:
Footprint | Library | 3580KB | libQt3Support.so.4.4.4 |
---|---|
1220KB | libQtCLucene.so.4.4.4 |
2528KB | libQtCore.so.4.4.4 |
532KB | libQtDBus.so.4.4.4 |
10564KB | libQtGui.so.4.4.4 |
572KB | libQtHelp.so.4.4.4 |
1256KB | libQtNetwork.so.4.4.4 |
568KB | libQtOpenGL.so.4.4.4 |
1236KB | libQtScript.so.4.4.4 |
716KB | libQtSql.so.4.4.4 |
384KB | libQtSvg.so.4.4.4 |
96KB | libQtTest.so.4.4.4 |
11580KB | libQtWebKit.so.4.4.4 |
3140KB | libQtXmlPatterns.so.4.4.4 |
340KB | libQtXml.so.4.4.4 |
37.41MB | Total |
33.92KB | Without Qt3Support |
22.61 | Without Qt3Suppor and WebKit |
12.79 | For a GUI + Core app |
Qt 4.4.4 components and their footprint
(Source: Qt Software)
Additionally, “more fine tuning” is possible when configuring your Qt build, such as removing STL, exceptions, changing compiler optimization flags, and so forth.
Initial S60 support
The pre-release downloads of Qt for S60 are available in open source and commercial versions, with “no real difference” between them, according to a Nokia developer's blog. However, since open source compilers cannot yet build software for the S60 platform, the open source version adds binaries (built with Nokia's RVCT compiler), enabling open source developers to try out their software.
According to a blog post by a Nokia developer, the pre-release download includes:
- QtCore – all the non-Gui classes
- QtGui – painting and widgets
- QtNetwork – TCP, HTTP, etc.
- QtTest – unit testing
The pre-release launch came at the Symbian Smartphone Show in London today. Nokia said the addition of S60 as a target adds some 80 million potential target devices that Qt-based software can target. Along with the dual-licensed Qtopia Extended application stack for phones, PDAs, and other devices, Qt applications today include Google Earth, the Opera browser for Linux, Adobe AIR (for “standalone” flash-based applications), and of course the KDE Desktop Environment (KDE) family of popular Linux desktop applications.
Additional background
Qt (pronounced “cute”) is maintained by Qt Software, now a division of Nokia, which acquired Qt creator Trolltech in June. The “device” version of the Qt tools has long supported Linux, but was ported to Windows Mobile just prior to the acquisition. Now, with the addition of S60 — Nokia's customized version of the now open source Symbian stack — Qt is available for all the most popular smartphone OSes.
This video shows Qt running Symbian, Windows Mobile, and Linux phones
(Click to play)
In similar fashion, the desktop version of Qt has long supported Linux, Windows, and Mac OS. Primarily a developer tools company, Qt Software's (formerly Trolltech's) mission has long been to provide cross-platform tools that let developers compile binaries from a single C++ source-code base. The resulting binaries yield a “native” look and feel on each targeted platform, for a more natural user experience than Java applications typically offer, the company has long contended. Native applications may also offer faster performance than managed ones, and integrate more easily with other native software on the device.
Qt for S60 screenshots
(Click any to enlarge)
Sebastian Nystrom, VP of Qt at Nokia, stated, “Qt brings an elegant and intuitive C++ development tool to the S60 platform, improving the ability to develop richer user experiences on the platform, and making S60 on Symbian OS even more attractive for developers to target with their applications and services.”
According to Nokia, Qt on S60 will work with S60 3rd Edition Feature Pack 1 and later releases. The first production release of Qt for S60 will be available in the second quarter of 2009, it said. To learn more, have a look at this blog post. Or, go right for the download, here.
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.