Jolla: Sailfish OS, Qt, and open source

Please consider subscribing to LWN Subscriptions are the lifeblood of LWN.net. If you appreciate this content and would like to see more of it, your subscription will help to ensure that LWN continues to thrive. Please visit this page to join up and keep LWN on the net.

Jolla's Vesa-Matti Hartikainen came to Akademy 2013 to talk about—and show off—the new Jolla phone with Sailfish OS. Like a number of related projects, Jolla (pronounced as "Yo-la") was created in the wake of Nokia's move away from MeeGo. While Sailfish OS is based on Linux and many other open source technologies, the "user experience" (UX) layer is (currently) closed, but it's clear that Jolla has put a lot of thought into how to interact with a mobile phone. Whether that translates to success in the marketplace remains to be seen, but Hartikainen's demo was impressive.

Hartikainen began by noting that he is an engineer at Jolla, so he does "code—real stuff". Some of the software he will be showing was written by him, and much of the rest was written by his friends and colleagues. His talk was about "Sailfish OS, open source, and Qt" which covers "who we are", "what we do", and "how we do it", he said.

He switched to a bit of history, going back to the beginning of 2011, when "Nokia was a coward" that "didn't believe in themselves", and killed its own platforms. That was when Nokia switched to Windows Mobile for its phones. Several MeeGo people who were working on the N9 phone (which ran a MeeGo derivative of sorts) recognized that the MeeGo platform was a good one and was open source. They wanted to continue working with MeeGo, so they started the process of creating a company to do so. That company is Jolla.

Starting the company

In order to start a company, you need people, money, and technology, Hartikainen said. Initially it looked like MeeGo would be the technology. Lots of people were getting laid off from Nokia and other MeeGo contractors, which would help fill the people requirement. Money took a bit longer. After a year or so, though, there was enough money and confidence to announce the company as a continuation of the legacies of the N9 and MeeGo.

At roughly the same time, Nokia had "another strategy change" and decided to give up on Qt. It sold Qt to Digia and many of the Nokia Qt employees also made the switch, but some did not, including teams working on QML and Qt Mobility. So Jolla recruited some of those people and was able to build a Qt team that way, he said.

Somewhere in all of that, Intel also gave up on MeeGo and moved on to Tizen (which was not Qt-based), which resulted in the creation of Mer—a stripped-down version of MeeGo. Another project is Nemo mobile, which continues the MeeGo handset path. Nemo mobile provides packages for applications like a dialer and for SMS messaging. Jolla uses Mer for the core of its OS and Nemo mobile for some of the "middleware" applications.

But Jolla also needed something unique to offer, Hartikainen said. It was determined that the UX would be the differentiator for the phone. Luckily, there were a lot of talented designers available as well, due to the MeeGo fallout. The folks at Jolla had already knew many of those designers, knew "they were easy to work with", and those designers could create "innovative ideas" that the other companies were too afraid to try.

In June there was a public launch of the resulting "Jolla phone". It is a "real thing", he said, and held one up to show. Currently, the team is working on the "final stretch": last minute bugs, optimizations, and small features, to get it ready to go into stores.

Demo

At that point, he asked a colleague to run a video camera while he operated the phone. That allowed the audience to see the phone and the UX as exercised by Hartikainen. He started with the "basic lockscreen", which has notifications that can be accessed by pulling right, a "pulley menu" that is accessed by pulling down, or the main screen which is reached by pulling up to "open the phone". Unlike Android's notifications, he said, you don't need to pull all the way from the top, pulling (i.e. a one-finger swipe-like gesture) from anywhere on the screen in the proper direction will activate the feature.

The interface seems to be more gesture oriented than other phones. As he was showing different features, there were numerous different gestures used, which may require users to learn more before they can get the most out of the phone. For example, there is no back button, so swiping from the left goes back. In addition, status items like time, power, network status, and so on, are on their own screen, rather than lined up across the top as in most phones. That screen can be "peeked" at by pushing partly across the screen from the right. Once the finger is lifted, the display returns to wherever it was.

Leaving the status off each screen is part of the design philosophy of using the screen real estate for user or app content, rather than controls. The "pulley menu" which can be pulled down from the top is another example. It is application specific, with haptic and sound feedback for each menu item that makes it "almost" able to be used without looking, Hartikainen said. When it is not needed, though, it takes up no screen real estate for a button or control. One can also interact with running apps from the multitasking screen (which has thumbnails of each running app), rather than switching to them (by tapping), you can use gestures on the thumbnail to perform certain actions (e.g. switch songs).

There are various ways to personalize the device, as well. The "ambience" feature allows you to choose a photo from the gallery as a background, and the phone will switch its interface colors to match the "mood" of the photo. Ambience will also be tied in with the idea of the "other half", which is an intelligent back cover for the phone (aka "active covers"). Attaching different covers will change the ambience of the phone, but it may also do more than that. Hartikainen described a "party profile" that might be associated with a red cover; when it is attached, perhaps work email and certain incoming phone calls would be disabled along with other changes that correspond to a party mood.

The covers have both data and power connections, so they could serve other purposes as well. Additional battery power or a hardware keyboard are two that were mentioned. The protocols and pinout information will be available, so the hope is that other companies come up with their own innovative ideas.

Hartikainen showed a few more features of the interface, including the event feed, which is accessed by pulling up. It is similar to that of the N9, he said, but you can "+1", "Like", or comment on an event directly in the feed, there is no need to open an app or web site. The app store is meant to be a "social store", he said, with true recommendations from friends. But that is "hard to get right".

More details

The device he showed is a prototype, the final device will be smaller, but even now it is "so nice" to use, he said. That ended the demo, and he moved into a rundown of the specifications of the device: 4.5" display, dual-core processor, "nice camera", user-replaceable battery, and so on. There is a runtime for Android apps, so any that are absolutely required and only available for that platform can still be run on the phone. Those apps will provide an "Android experience", rather than the normal Jolla experience (no ambience, pulley menu, or interaction with an active cover, for example).

To sum up the user interface, Hartikainen said, it is meant to be beautiful and personal. It maximizes the screen space for user content and uses gestures rather than tapping for control. It provides a modern look, he said, but is "not boring".

Before his talk, everyone told him that he "needed technical details" in it, he said, so he turned to the architecture of Sailfish OS. The user interface layer is Jolla-specific and is currently closed, but it will not remain that way forever. Parts of the Sailfish Silica QML components were released under a BSD license with the alpha SDK; the native (C++) code parts will follow "soon". Silica is what is used internally as well; there is "no secret magic", as everything uses the Silica API. The Jolla team in Australia has been working on QML performance and have gotten it to work "extremely well", even on older hardware.

On the "middleware side", there is Nemo, he said. It provides services like tracker for indexing multimedia, mallit for virtual keyboards, lipstick for building home screens, grillo for multimedia, Gecko for the web, and so on. Under that is Mer, which provides Gstreamer, ConnMan, Qt 5, Wayland, PulseAudio, and systemd "for startup". It is, he said, a very normal Linux distribution, just with a "tight set of packages" so that a small company like Jolla can maintain it.

The Sailfish SDK is based on Qt Creator and virtual machines: one as a build engine and the other as an emulator. The emulator runs a full x86 version of Sailfish OS. Because of that, much of the development for the phone can be done just using the SDK, he said.

Jolla is not just "sitting alone at home coding", but instead does a lot of collaboration with other projects. The main projects Jolla works with are Qt, Mer, and Nemo. Jolla started with Qt 4.8 and added some hardware-specific code and optimizations; eventually backporting some Qt 5 code to 4.8. Since then, it has moved on to Qt 5 and the main focus right now is to "get Qt 5 fast as hell" on Wayland and ARM.

"We are a small company", Hartikainen said, so right now the intent is to ship products before it does more ambitious things, such as helping out more on Qt upstream. Jolla is the main contributor to the Mer project; "we love it". It is also a "significant contributor" to Nemo, mostly in the middleware layer (as Jolla does not use the Nemo UX)

Jolla has two offices, in Tampere and Helsinki, Finland, and a "bunch of people working from home" in various locations around the world. There is "light process" in the company and it takes an iterative approach to solving problems, especially in the user interface design. Most importantly, though, it is not afraid of change, he said. Everything is set up to try new things quickly. It is an "open source way of working", he said, without that and open source software itself, "we wouldn't be here". Pull requests, patch reviews, IRC, and other distributed working environment techniques have made it all work for Jolla.

[Thanks to KDE e.V. for travel assistance to Bilbao for Akademy.]

