What does the technology stack for mobile applications (native and HTML5) look like for the new Sailfish OS announced by Jolla? There is little information available in one central place on the Sailfish OS technology stack, but the project websites of open source products used by Sailfish OS provide the following information:
- Base operating system: Sailfish OS uses the Meego fork Mer as the main operating system. Mer is centered around a ultra-portable Linux + HTML5/QML/JS Core. For Sailfish OS, Mer project serves as the core OS, providing a functional core Linux stack that boots up to the screen, but without any UI and without any hardware adaptation
- User interface: Sailfish OS uses parts of the former Meego UI - MeeGo Handset UX - which is now known as Nemo Mobile.
- Sailfish SDK: Sailfish SDK is based on QtCreator and will be available in Windows, Linux and OS X. The SDK binaries are expected to be available in late 2012 or early 2013. The SDK consists of Mer Core’s tools, Qt Creator, Jolla UI components, Sailfish UI framework and Salfish handset app interfaces.
- HTML5 apps: The Sailfish development team is investigating using Apache Cordova (formerly PhoneGap) for Qt to enable development of HTML5 based mobile apps.
- Android apps on Sailfish: Many Android applications will run on Sailfish OS / Jolla devices unchanged. To take advantage of all UI and other features of Sailfish OS and make an app fast, the app might have to be ported to native QT/QML.
Based on the above information it seems that there will be three approaches to building mobile apps for Sailfish OS:
- Native app using Mer's core APIs, Jolla UI components, Sailfish UI framework and handset app interfaces.
- Re-using existing Android applications (although no details are available as to which features will be supported for such apps).
- HTML5/JavaScript based using the Apache Cordova APIs.
And that would mean the following programming and markup languages can be used:
- C++ and QT
- Markup languages: QML (native apps) and HTML (Cordova)
- JavaScript, CSS (both for Cordova based apps and QT/QML)
Is there anything missing, or did I misunderstand some of the information? I have not been involved with any QT/QML development so far, it would be helpful if someone with more experience could provide me some input.