What does the technology stack for mobile app development on Jolla's Sailfish OS look like?
Asked Answered
P

1

8

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.

Peirce answered 28/11, 2012 at 0:10 Comment(5)
Jolla's Sailfish SDK Demo at Slush 2012 on Youtube contains detailed information on the SDK; I wasn't aware of the video when I asked the question. Here's the link youtube.com/watch?feature=player_embedded&v=ZrwYyN-vNVoPeirce
Jolla posted a Facebook message with some info: "Qt APIs (QtQuick, QtMobility, QtWebkit and more) should be used by typical Sailfish OS applications." Sailfish OS will be using QT 4.7, since it's based on the Mer SDK which currently uses Qt 4.7.Peirce
This is not directly related to my question, but I found the article "The story of Nokia MeeGo" helpful to get a better understanding of how MeeGo and Sailfish OS evolved.Peirce
Jolla has released an alpha version of the Sailfish SDK today at MWC 2013: sailfishos.org//develop.html The sailfishos.org website contains a lot of information on app development for Sailfish OS now.Peirce
Thought I'd add that python apps are now accepted in the harbourRinarinaldi
C
6

(1) I think you have committed: re-using existing MeeGo and Tizen (especially MeeGo Harmattan form Nokia N9) applications (although they will run when written properly with MeeGo standards and until will not do something significantly incompatible with Sailfish OS UI or with MeeGo API standard which is used by Mer).

Both MeeGo and Android apps may need a slight adaptation to gain Sailfish UI need and the full speed. When they are written in Qt it will be relatively easier.

I treat Tizen as a MeeGo fork, with backward compatibility as much as MeeGo standard was followed, hence and with above "but", I treat MeeGo and Tizen apps together in above aspect.

(2) You have also omitted that Sailfish OS as a full Linux can run a Linux software with RPM packages used by Sailfish. It was working with MeeGo Harmattan (but using DEB only) so this a possible option for Sailfish OS to use eg. LibreOffice or OppenOffice, as With MeeGo Harmattan OpenOffice was running and was functionally working with limitations of Nokia N9 device, however it was possible to write and edit texts. That gives access to a large software library, however a device dimensions can limit it in practice.

This is also a question of dev mode availability in Sailfish device, which now can't be verified.

(3) SDK as it was said during slush presentation will be with Mer tools but open and elastic, what mean an organisation/group/user will be able just to change it with eg. adding a particular tools needed for them what gives ability to create an environment which will be related to context or particular needs of a particular dev(s) like a company tools etc.. This will make development/coding easier, faster and cheaper. I think this can be important for devs and coders.

Chord answered 28/11, 2012 at 12:23 Comment(1)
Thanks for the detailed answer! You are right, I forgot about the ability to install existing Linux apps on Sailfish OS. What you mention in (3) makes a lot of sense, especially if companies are not targeting smartphones, but other consumer electronics devices or car infotainment systems. I've been playing with the Tizen SDK as well. They are using Eclipse as an SDK development, HTML5 apps seem to be well supported, but there's less documentation on how to create native apps. I personally like the Sailfish OS UI demos more than what I saw running on Tizen.Peirce

© 2022 - 2024 — McMap. All rights reserved.