Already in September 2017 I migrated away from Sailfish OS and I am now now using an Android phone. For me, this is the first time I left the niche market of alternative phone operating systems to go mainstream. Originally I used a Nokia dumb phone and then in 2009 got the Nokia N900 as my first smartphone with Maemo as OS, which was so much joy, easily extensible due to the open platform, and had a sliding keyboard. After a few years I continued with the Nokia N9 with the now abandoned Meego. The N9 was released shortly before the Nokia phone department was switched to produce Windows phones for Microsoft. However, a group of former Nokia developers formed Jolla, a company producing an alternative phone operating system called SailfishOS.
History of Sailfish OS
As a reference design, Jolla released their first phone by the same name in 2013, which was famous for “The Other Half”. You could attach back covers to extend the phone hardware, where connectors in the back of the phone gave access to the battery and a I2C bus to interact with the phone. This was kind of a revolutionary idea, but did not get much traction from third-party manufacturers. Of course the phone hardware also had some shortcomings as they had to settle on an off-the-shelf SoC and other problems such as battery contacts no longer aligning properly when bouncing in your pocket (which could be solved by squeezing some paper below the battery to push it up a but more). After all, it was a great device with a new UX concept. Jolla did not require buttons for navigation and therefore the front of the device had none, while other phones still used full hardware buttons or at least touch areas. Instead on Jolla’s new SailfishOS, everything was controlled by normal swipes on the display and swipes from display edges.
While the mainstream market was already taken by Android and iOS at the time, this was the perfect opportunity for me to stay in this niche market. Unlike Android, SailfishOS is closer to a normal Linux system. In fact, the Jolla phone used all the latest technology at that time. The display server was already Wayland (in 2013!) instead of X11 (with a hack that made it possible to use the proprietary Android display driver blobs), it already used systemd as init system, and it even had btrfs as filesystem. I have to note that SailfishOS is also not fully open source, as Jolla kept almost all of the UI components closed. Although by being based on Qt QML, a declarative language for user interface programming, it is still possible to patch in modifications by editing the scripts embedded in application binaries. The layers below the user interface and the middleware are open source, though. SafilfishOS is a Linux distribution based on Mer (some say it stands for MEego Reconstructed) and Nemo Mobile, to which both Jolla was the main contributor.
One of the best ideas of Jolla was to include the Android emulator AlienDalvik by Myriad that allowed to run any Android app on the phone. The Nokia devices I had before included native apps for social networks like Twitter or Facebook and even integrated them nicely into the rest. As a side note just imagine the N900 had only one single messenger app that allowed to talk to all your contacts on all the different social networks without switching apps or use different interfaces. Of course that only worked for a giant such as Nokia, it is impossible to get Twitter or Facebook to support your niche operating system if there is no significant user base. So on the Jolla, whenever there was no native app available, one could just get the Android app. This was also great to get people to migrate to the phone, because they could just continue to use what they knew, but in parallel also try native apps with the better swipe UX.
After Jolla had also successfully crowdfunded an award-winning tablet, but failed to deliver the resulting product, they had to make a cut before going almost bankrupt and they decided to concentrate on software development only. They partnered with hardware manufacturers to bring new devices with their OS to the market instead of also investing into hardware. However, that market was not in the US or Europe, but instead they had to focus on BRICS countries and released the Intex Aqua Fish in India in 2016. As that device was not available to the rest of the world, Jolla set up a developer program for the active community in Europe, which included the Jolla C device. This was basically a clone of the Intex Aqua Fish with the right modem for the European LTE frequencies, but had only plastics and foil instead of a tempered glas screen. The community device program was limited to only 1000 devices, so I was quite lucky to get hold of one of these.
The shortcomings of Jolla and Sailfish OS
However, after using the Jolla C over year as a daily driver, I noticed a lot of shortcomings. The cheaper hardware not withstand the use case of being carries around in the pocket all day. There is no blame on Jolla, as the phone was never meant to be used like this. A development device should mainly stay on the desk, but that is not what I did. So the display started to getting a few scratches due to rough handling by me. However, at the same time, the software started to fall behind. Remember that at the end of 2015, Jolla had been almost bankrupt, had to let go a half of the employees and therefore lost lots of talent. It seemed like the development was more focused on getting the OS to run on new hardware than to actually deploy new features.
In the middle of 2017, Sailfish OS was still in a sad state in my opinion. What I was still missing were native apps for the social networks. When I evaluated my app usage, it turned out I was almost exclusively using Android apps on the emulator (Twitter, Facebook, Instagram, Spotify) and almost no native app existed. The main problem here is that the big players did not want to support it (Spotify even had an internal prototype of a native app!). Although all of them offer API access to their content, they usually do not allow to recreate what the official app can do. Like a third-party Instagram app can not upload photos. A third-party Twitter client cannot view replies to tweets. Like any other company trying to get profitable, they have to control their platform. Of course that means they have to focus on the mainstream and leave out niche markets.
At that time in 2017, my original Jolla phone was actually still in good shape. It was even still able to run the latest software and got regular updates four years after its initial release. One of the problems was the battery. Although detachable, there was no official replacement on sale, for which Jolla had to take a lot of flak from the start. In addition, the hardware got old, while the demands increased. The 1 GB of RAM was way too small to run many apps at the same time (especially bloated Android apps) and it often ran into an out-of-memory state. Remember that Sailfish OS worked like a normal Linux with real multi tasking, so it does not have any kind of “freezing” that Android or iOS apply to stop apps from running in the background. It is nice to have a video running in one app and even see the playback updating live in the app overview, but of course this goes at the cost of performance.
Furthermore, the Android emulator was not able to keep up. The original Jolla phone supports Android version 4.1 and was never updated. Some apps no longer supported such an old Android version, or at least did not offer the latest features for this version. That is fair enough given that this Android version was introduced in 2012. As of today, Google reports less than 2% of all Android devices still use this version. Unfortunately, the Android emulator on the Jolla C also only supported Android version 4.4, which was released in 2013 and already has a platform version share of less than 13%. As the Android emulator on the Jolla never got any update, I doubt it will ever happen for the Jolla C. I have no idea under what terms Jolla had licensed AlienDalvik, but Myriad does not even list it anymore on their product website. Therefore this looks like a dead end for me.
As the Jolla phones were not running a licensed Android and were not blessed by Google, they also did not come with the Google Play Store. However, you could still install the Google Play Store in an unofficial way just like you can do when using an alternative Android distribution. While this worked fine for years, suddenly the latest version of the Google Play Store was no longer able to download app updates. I have no idea if this was a limit imposed and enforced by Google or a bug in the Android emulator, but it cut me off from getting any updates for my apps. Eventually I was able to downgrade to an older version of the Google Play Store, but it was no way to go forward.
Furthermore, the development of Sailfish OS did not make the progress I had wished for. While Sailfish 2.0 introduced a lot of changes and made the UX better, it also left some inconsistencies in the interface that were never fixed. The included sailfish-browser is still based on an old Gecko release and was falling behind. Other apps such as the email client never saw any significant update and was barely usable for me. But also the rest under the hood did not even catch up to Android or iOS. Starting out as a normal Linux distribution, Sailfish OS also adopted the security policies as we still see it today on the Linux desktop. Any app can read almost all your files. There is no sandboxing and no app permissions. After more than four years of development, that is quite ridiculous from a security perspective. And while the official app store is open for native apps, not all API and hardware features are allowed. Often enough the version in the app store would not offer all features that are actually implemented (most apps are open source software), but you have to get the app directly from the developer and side-load them to get everything.
At the MWC in February 2017, Jolla announced they would be porting Sailfish OS to the Sony Xperia X. That would mean there would finally be a phone available again on the market that can run Sailfish OS. However, at that time, the Xperia X was already almost a year old. While it was announced as being almost finished, Jolla took its time with the release. About 6 months after the original announcement, they finally stated they were close to a release. I will not criticize the price tag of 50 EUR for an OS image, as that might be what is needed to cover the costs of development. After all, how big is this niche market? However, they told us they only needed to figure out how to distribute the image to the customers, but some functionality like Bluetooth will not be available when they release. And although they promised support for Android apps once again, there was nothing on which version would be supported by the emulator.
That really tilted me, as the lack of communication on progress was not good and they would not even support all hardware feature of the device. Why would I pay more than 300 EUR for a device which is not even fully supported by the OS I want to install? Sorry, but you lost me as customer with this.
All in all, I was really fed up with Sailfish OS. The decision to look for alternatives was not easy, but I realized there will not be a future for me with Jolla.
Making the switch to Android
After some consideration, I decided to buy a Moto Z Play, which offers a similar concept to “The Other Half” of the original Jolla phone. You can attach so called Moto Mods to the back of the device with additional functionality. This time backed by a large company, more third-party mods might become available in the future. Also, Motorola promised to use the same form factor for future devices in the series to stay compatible.
Being a “frickler”, maybe best translated as someone who adventurously tunes computing devices, I quickly decided to install LineageOS instead of the official stock ROM by Motorola after having heard good stuff about it from my friends.
The shortcomings of Android and LineageOS
Of course, coming from a long history of using devices running Maemo, Meego, and Sailfish OS, I had to do some initial learning to get around on my Android device. That is why I am writing this long article only now after I had some time to experience the differences.
What I am still missing the most are the swipes. It was so much easier to get around on the device with the swipes to switch apps. Using swipes on Sailfish OS allowed to peek on another screen, so you did not even have to fully switch to the home screen or another app to check something. Just swipe from a side edge of the display to see whatever is behind the current app, then release the finger from the display without finishing the gesture.
On switching apps: compared to the nice app overview on Sailfish OS, the app switcher on Android looks like a joke to me. When I was looking for an app on Sailfish OS, I just looked for the app screen in the grid overview. I cannot get me to use this scrolling thing. Why would you organize apps in a vertical scroll view? I mean, in portrait mode, I can only see at most half a screen of each app. That often makes it hard to recognize them quickly or search for them. In fact, I usually just go to the home screen and use the app icons.
Furthermore and related to this, I miss the quick access to the app launcher. On Sailfish OS, I could just swipe from the bottom edge of the display to always get to the app launcher. On Android I have to go to the home screen first, then press another button to open the app launcher. And even then, the app launcher is terrible to navigate. All apps are strictly alphabetical. How at least about sorting by last use? I cannot even organize apps into folders there. However, you can do that on the home screen. Which in my case, just means I am mostly using the home screen to launch apps as it requires less searching for what I want.
But to get to the home screen, I have to leave the current app. On Sailfish OS, I could just swipe from the top edge of the display to quickly close an app completely. Now on Android, I can just press a button to go to the home screen. However, that preserves the app state in the background and there is no way to quickly close an app completely. I want to be able to close an app and the next time I open it, I want to be on its main screen. On Android, when I leave an app and then later tap on its icon again, I am wherever I left it. This might sound nice at first, but actually it is so annoying. Let’s say I added a new event in my calendar in the next month. Now I go on doing something else. When I later return to the calendar to see my agenda for tomorrow, I am actually looking at the events somewhere next month and I have to navigate back to this week. On Sailfish OS, I had entered the event and then decided that I am done with the app and close it. So the next time it opens on the current week as the default view. I know I can force close the app from the app switcher. But as discussed above, I barely use the app switcher and it is cumbersome to go through it.
Another thing I truly miss is the double tap to wake. This is a feature that originally come from the Nokia N9 released in 2011. When the phone is sleeping, just double tap anywhere on the display to wake the device. No need to press any buttons on the side or on the front, which usually requires to hold your phone differently. I recommend to check yourself how you initially hold your device when you unlock it and how you hold it when you use it. The double tap was an easy solution, why did it not catch on?
Another gesture I really miss is a way to temporarily lock the screen orientation. On Sailfish OS, you simply put a finger down on the display and then rotate the device. Although the rotate would normally cause the screen to follow, the finger on the display causes it to keep the screen orientation. If you rotate the device back, the temporary orientation lock is released. On Android, I now have to first fiddle with menus and buttons to lock the orientation before rotating the device.
While the above was all on the user interface, I also experienced some shortcomings with other parts. As a user of Linux and macOS systems, I am quite used to the terminal and I usually do a lot of stuff over SSH. However, Android lacks a decent terminal emulator. Everything I tried so far had different problems. JuiceSSH cannot copy text or open URLs when the remote side uses ncurses. Termius cannot detect or open URLs at all. I miss the FingerTerm I got used to on the Nokia N9 and that was shipped as Terminal on Sailfish OS. The main feature was that the terminal view was an overlay over a custom keyboard, so you could start typing at any time, which would then move the input line to the top.
An another thing while we are at the terminal level: Sailfish OS used ordinary RPM for package management. This meant you can just install software the usual way, although as a normal user only with the help of PackageKit. Maybe I will not actually need this, but on Sailfish OS, I regularly just used SSH to my phone to edit its configuration, make backups, etc.
On the hardware level of the Moto Z Play, I really wish it would make more use of the Super AMOLED. Back in the day, the Nokia N9 also had an AMOLED, but kept it always on with a low power white on black mode. This way, you could always see the current time of day or notifications. Now with the Moto Z Play, I have to actively wiggle the phone or cover and uncover the proximity sensor to turn on the display. I really hope that we will improvements to this in the future.
This got really long, thanks for reading. This was mainly for myself to reflect on all of what happened. Being alternative and using a phone on the niche market meant a lot to me for some reason. I got quite the nostalgic feeling when I think back of the days of the Nokia N900. Now, I have given in to the mainstream and I am using an Android phone. I do not regret the switch so far and the Moto Z Play works for me as a daily driver, although it also has its shortcomings as detailed above. I just hope that in the future the good innovations from the niches do not get lost, but will find their way into the mainstream.