Yesterday I spent sime time reading and catching up with potential technologies for desktop software that links to a web 2.0 service that we are building – or for that matter any web service. Having desktop tools to complement usability of web service and/or to offer offline support for example for data input and/or manipulation is more that helpfull and beneficial, not to mention addition of applications on mobile platforms.
Two technologies that I spent some time studying were Trolltech’s Qt and Adobe’s Air – two very different kind of beasts that could be used to fulfill similar needs.
Trolltech’s Qt on the other hand is already an old and well proven framework for multiple platforms, including also bindings for numerous languages – most importantly C++, Java and Python. Previously Qt was only usable for established commercial projects due to it’s high licencing costs or to open source projects that could use the library free with GPL licence. Due to Nokia’s announcements of changing Qt licence to LGPL there has been a huge interest lately for Qt and that is also the main reason for my interest to look at the framework. Based on examples delivered with the distribution QtJambi – Java bindings for Qt – seemed reasonably easy to use and well featured with components and features enough to build almost anything. Ability to use same code and libraries as in service code in backend, having very well tested and well known process and model for development — and most importantly well tested UI components is a huge plus. There is also no doubt that native components of QtJambi are blazingly fast and even have direct access to target machine’s graphics hardware.
Packaging and distributing applications made with QtJambi however is little bit more complicated compared to Adobe Air. You have to package the software for each platform and create installers with separate tools, most likely an commercial installer creator that hopefully also includes an ability to include also JRE into the installation. Open source IzPack ( http://izpack.org/ ) seems otherwise good, but does not include the possibility to install java runtime if that does already exist in the target system. With a quick google search I did find some installers that do that also, and from a small selection of potential and expensive tools I found one that seems not too expensive and also seems to have required features ( http://www.advancedinstaller.com/feats-list.html ).
So without writing any code, what is the verdict and with which technology will I do my first tests?
Should I say both?