Get your first digital copy of the magazine for iPhone and iPad free – just search for ‘Linux User’ on the Apple App Store now! [twitter username=”linuxusermag”]
With the release of Qt 4.7 now at the beta stage, the current emphasis upon speed of development and robustness within final deployment has deeply positive undercurrents, which swell both from Qt and from its community of contributors. More specifically, the Qt Quick user interface (UI) creation kit now hands UI designers the opportunity to deliver working code back into the total development shop effort so that UIs are built from a true look and feel perspective like never before. So have we really turned a new corner in interface creation?…
You say that Qt’s cross-platform application framework provides developers with the power to write once and then allow deployment to many devices without rewriting the source code. Doesn’t this mean that some functionality compromises will always have to be made if you aim to stretch an app from the desktop to embedded and then onward to a mobile device?
As you stated, Qt supports many platforms, from the desktop to embedded and mobile devices. The function of a Qt application is up to the developer, and there are obviously vast differences between some of the devices across the platforms we support – for example, a Windows 7 laptop versus a Symbian smartphone.
There are many examples of Qt apps running across platforms within a common platform type – such as Google Earth running across different desktop platforms, and WordPress for Nokia running across mobile platforms. In the case of writing an application and then deploying it onto very diverse platforms (such as a mobile platform and a desktop platform) there are definitely special challenges because of differences in factors such as input methods, device usage paradigms and hardware capabilities.
In terms of how much code can be reused for the user interface, this needs to be the decision of the application developer. Up to now, Qt has definitely been optimised for ‘code reuse’, and I believe that this will continue to be a very important aspect, in particular for the application logic, even across form factors. However, for the user interface there clearly is a need for a technology that allows application developers and designers to easily redefine, modify, customise or even completely rewrite the code so that the application can provide an optimal user experience.
Our upcoming UI creation kit Qt Quick offers exactly that – if you want your application to be available across device categories, then let your UI designers and developers use Qt Quick to write the optimal user interfaces for each form factor and platform that you are targeting. The declarative language in which UIs are expressed is optimised for exactly that. The C++ code implementing your application logic will continue to be reusable across all platforms, and you can decide where to draw the line between reusing and customising code.
Qt Quick uses the solid and native technologies that Qt developers are familiar with – like QGraphicsView and the Qt Animation Framework – and these, combined with a declarative language, make it easy to define smooth animations. Put simply, QGraphicsView uses two important elements of the Qt platform: the Qt Animation Framework and the QStateMachine between the different ‘states’ the application could be in across different platforms and/or devices.
Also look at QAction tool – which allows the developer to identify an item on a menu bar entry or an item attached to a softkey and manage that action (or a set of actions) within an application in a completely platform-independent way – and you can see why we take our cross-platform pedigree quite seriously.