With billions of devices produced, Android is by far the most common Linux-based mobile operating system to date. Of the less known competitors, Ubuntu phone and Jolla are the most interesting. Both are relatively new and neither one has quite yet all the features Android provides, but they do have some areas of innovation where they clearly lead Android.

Jolla is the name of the company behind the SailfishOS. Their first device entered stores in the fall of 2013 and since then SailfishOS has received many updates and SailfishOS 2.0 is supposed to be released soon together with the new Jolla device. A review of the Jolla phone can be read in the Seravo blog article from 2013. Most of the Jolla staff are former Nokia employees with lots of experience from Maemo and Meego, which SailfishOS inherits a lot from.

Ubuntu phone is the name of the mobile operating system by Canonical, famous from the desktop and server operating system Ubuntu. The first Ubuntu phones entered stores in the winter of 2015. Even though Ubuntu and also Ubuntu phone have been developed for many years, they can still be considered runner-ups in comparison to Jolla, because they have much less production usage experience with the bug fixes and incremental improvements it brings. A small review of the Ubuntu phone can also be read in the Seravo blog.

In comparison to Android, both of these have the following architectural benefits:

based on full-stack Linux environments which are much more generic and universal than the Android’s somewhat limited flavour of Linux

utilizes Qt and QML technologies to deliver modern user experience with smooth and fast graphics instead of a Java virtual machine environment like Android does

are to their development model more open and provide better opportunities for third parties to customize and contribute

are not tied to the Google ecosystem, which to some user groups is a vital security and policy benefit

The last point about not being tightly knit to an ecosystem can also be a huge drawback. Users have learned to expect that their computing is an integrated experience. The million dollar question here is, will either one grow big enough to form it’s own ecosystem? Even though there are billions of people in the world who want to use a mobile phone, there probably isn’t enough mindshare to support big ecosystems around both of these mobile operating systems, so it all boils down to which of these two is better, which one is more likely to please a bigger share of users?

To find an answer to that we did some basic comparisons.

Ease of use

Both of these fulfill the basic requirements of a customer grade product. They are localized to multiple languages, well packaged, include interactive tutorials to help users learn the new system and they include all the basic apps built-in, including phone, messages, contacts, email, camera, maps, alarm clock etc.

The Ubuntu phone UI is somewhat familiar to anyone who has used Ubuntu on the desktop as it uses the Unity user interface by Canonical. In phones the Unity version is 8, while the latest Ubuntu 15.04 for desktops still ships Unity 7 series. In Unity there is a vertical bar with favourite apps that appears to the left of the screen. Instead of a traditional home screen there is the Dash, with search based views and also notification type of views. To save screen estate most menus and bars only appear on swipe across one of the edges. Swipe is also used to switch between apps and to return to the Dash screen.

The UI in the Jolla phone is mostly unlike anything most people have ever seen. The general look is cool and futuristic with ambient themes. The UI interaction is completely built around swiping, much like it was in the Nokia N9 (Meego variant). Once you’ve used a little bit the device and get familiar with the gestures, it is becomes incredibly effortless and fast to use.

The Ubuntu phone UI looks crisp and clean, but it requires quite a lot of effort to do basic things. After using both devices for a few months Jolla and SailfishOS feels simply better to use. Most of the criticism of Ubuntu’s Unity on desktop also applies to Unity in Ubuntu phone:

In Ubuntu the app bar only fits a few favourite apps nicely. If you want browse the list of all apps, you need to click and swipe many times until you arrive at the app listing. In comparison to Gnome 3 on the desktop and how it is done in Jolla phones, accessing the list of installed applications is just one action away and very fast to do.

Switching between open apps in Ubuntu is slow. The deck of apps looks nice, but it only fits four apps at a time, while in Gnome 3 opening the shell immediately shows all open windows and in Jolla the main view also shows all open apps. In Jolla there is additionally so called cover actions, so you can control some features of the running apps directly from the overview without even opening them.

Search as the primary interaction model in a generic device does not work. Ubuntu on the desktop has shown that it is too much asked for users to always know what they want by name. In the Ubuntu phone search is a little bit less dominant, but still searches and scopes are quite central. The Unity approach is suboptimal, as users need to remember by heart all kinds of names. The Nokia Z launcher is a much better implementation of a search based UI, as it can anticipate what the user might want to search in the first place and the full list of apps is just one touch gesture away.

Besides having a fundamentally better UI, the Jolla phone seems to have most details also done better. For example, if a user does not touch the screen for a while, it will dim a bit before shutting down, and if a user quickly does some action, the screen wakes up again to the situation where it was. In Ubuntu, the screen will simply shut off after some time of inactivity and it requires the user to open the lock screen, possibly entering a PIN code, even if the screen was shut off only for a second. Another example is that in Jolla, if the user rotates the device but does not want the screen orientation to change, the user only needs to touch the screen while turning it. In Ubuntu the user needs to go to the settings and lock the rotation, and can only then return to the app they where using and turn the device without an undesired change in rotation. A third example is that in Jolla you can “go back” in most views by swiping back. That can be done easily with either thumb. In fact the whole SailfishOS can be used with just one hand, let it be the right or the left hand. In Ubuntu navigating backwards requires the user to press an arrow icon in the upper left corner, which is impossible to do with your thumb if you hold the device with your right hand, so you often end up needing to use two hands while interacting with the Ubuntu phone UI.

To be fair, Ubuntu phone is quite new and they might not have discovered these kind of shortcomings yet as they haven’t got real end user feedback that much. On the other hand, the Unity in Ubuntu desktops has not improved much over time despite all criticism received. Jolla and SailfishOS had mostly all things done correctly from the start, which maybe means it was simply designed by more competent UI designers.

Browser experience

Despite all cool native apps and the things they can do, our experience says that the single most app in any smart device is still the Internet browser. Therefore it is essential that the browser in mobile devices is nothing less than perfect.

Both Ubuntu and Jolla have their own browser implementations instead of using something like Google Chrome as such. As the screenshot below shows, both have quite similar look and feel in their browsers and there is also support for multiple tabs.

Performance and battery life

As both Ubuntu phone with Unity and Jolla phone with SailfishOS are built using Qt and QML it is no surprise both have very fast and responsive UIs that render smoothly. This is a really big improvement over average Android devices, which often suffer from lagging rendering.

Ubuntu phone has however one big drawback. Many of the apps use HTML5 inside the Qt view, and those HTML5 apps load lots of external assets without prefetching or caching them properly like well made HTML5 apps with offline manifests should do. In practice this means for example that browsing the Ubuntu app store is very fast, but the app icons and screenshots in the active view load slower than what one could ever wait, that is for longer than tens of seconds. This phenomenon is visible in the Ubuntu app store screenshot below.

The Jolla battery life has been measured and documented in our blog previously. When we started using the Ubuntu phone the battery life was terrible and it ran out in a day even when with the screen off all the time. Later upgrades seem to however fixed some drain, as now the battery life is much better. We have however not measured and documented it properly yet.

App ecosystem, SDK and developer friendliness

Both Ubuntu and SailfishOS have their own SDK and QML based native apps. The Jolla phone however includes it’s own implementation of a virtual Java machine, so it supports also Android apps (though not always all features in them). Ubuntu has chosen not to be able to run any kind of Android apps. O n the other hand the focus of Ubuntu seems to be on HTML5 apps. At least the maps app in Ubuntu is a plain HTML version of Google Maps and the Ubuntu store is filled with mostly HTML5 apps and real native apps are hard to find. In the Jolla store real native apps and Android apps are easy to spot as Android apps have a green icon next to their entry in the Jolla app store.

Both platforms include features to let the advanced users get a root shell on them. In Jolla one can go to the settings and enable developer mode, which includes activating remote SSH access so that developers can easily access their devices command line interfaces. In Ubuntu it is simply a matter of opening the command prompt app and entering the screen lock PIN code as the password to get access.

SailfishOS package management uses Zypper and RPM packages. In Ubuntu phone Snappy and Deb packages are used.

The interesting thing with Ubuntu is it’s potential to be integrated with the Ubuntu desktop experience. So far in our testing we didn’t notice any particular integration. In fact we even failed to get the Ubuntu phone connected to any of our Ubuntu laptops and desktops, while attaching a Jolla to a Linux desktop machine immediately registers as a USB device with the mount point name “Jolla”. To our knowledge this is however a dimension that is under heavy development at Ubuntu and they should soon reveal some big news regarding the convergence of the Ubuntu desktop and mobile.

For a company like Seravo, the openness of the technology is important. SailfishOS has some disadvantage here, because it includes closed source parts. Much of SailfishOS is though upstreamed into fully open source projects Mer and Nemo. Ubuntu seems to promise that Ubuntu Phone is open source and developed in the public with opportunities for external contributions.

Conclusion

Both of these Linux-based mobile operating systems are interesting. Both share many of pieces of their technology stack, most notably Qt. There really should be more competition to Android. Based on our experiences Jolla and SailfishOS would be the technically and usability wise superior alternative, but then again Ubuntu could be able to leverage on it’s position as the most popular Linux distribution in desktops and servers. The competition is tight, which can have both negative and positive effects. We hope that the competition will fuel innovation on all fronts.