Subscribe to future posts here
Sailfish OS update from Jolla
Perusing through the topics raised for discussion at the last Community Meeting, it’s striking that for every problem or query raised, there are in equal measure eager community members willing to step in to help.
Take Ruben De Smet’s (rubdos’s) question about upgrading Rust. While he starts with a strong case for why updating the SDK with the latest Rust would be a good thing, without missing a beat he’s moved on to the process of making it happen and how he can contribute.
I’m willing to chip in and bump the versions, but I’d love some feedback on whether Jolla will accept such big changes.
And sure enough, just a few days after the meeting we’re already seeing the fruits of Ruben’s labour in the LLVM and Rust repositories.
Similarly when it comes to updating the BluezQt library, Nicolas Werner (KuroNeko) doesn’t just raise the question, but adds rocket boosters to the task by providing a PR of changes to kick the process off.
It goes without saying that at Jolla we love contributions from the community. But the more the community helps, the easier it is for us to miss an important submission or miss-prioritise the submissions we’re focussing on.
In a bid to minimise the chance of this happening, Raine (rainemak) — who you’ll know as an active forum moderator and Jolla dev — suggested a new section to the meetings where we review any languishing community Pull Requests to help focus our efforts.
So if you know of Pull Requests that are over three weeks old, but which you feel haven’t had the focus they deserve, please add a link to the PR as a comment in the meeting topic. We’ll make sure we take the time to discuss it during the meeting, and just by raising it you’ll increase its priority for review.
Energy from the Community
Back in December last year we did a roundup of some of the most actively developed Sailfish OS ports. One of the main porters in the feature was Michał Szczepaniak (Mister_Magister), who has developed ports for the Moto G series, Moto X series and Zenfone 5z amongst others. Michał describes himself as someone with “too much free time and interests”, but who thankfully chooses to spend some of that time working on Sailfish-related activities.
Back then when we spoke to Michał, he emphasised that while he continues to support his ports, much of his effort is now being spent on app development.
I’m still supporting four phones and seven apps. So ever since 2015 I’ve been doing my best to support Sailfish OS. My apps are actually being used so I shifted my focus to apps.
One of the apps which Michał has been focussing on is Microtube, a native YouTube client that allows you to browse, search for, watch and then liking on videos all without having to fire up the browser.
Michał already started working on the app two years ago, when he found there were no suitable native apps for watching YouTube videos effectively.
I wanted to watch YouTube sometimes but there was nothing useful to just watch it comfortably so I went “fine, I’ll do it myself”
Since then the app has developed a long way. It just hit version 3.0.0 this week after what Michał describes as a “complete rewrite”. When I ask Michał whether he still has a lot of work to do on the app, he’s clear that the hardest part is now complete.
3.0 is complete rewrite because I dropped Minitube and used my GStreamer player. There’s nothing bigger than that so anything else requires less time and energy.
Minitube is a reference to the cross-platform YouTube player from Flavio Tordini. Upstream changes meant it no longer made sense to retain the Minitube layer between the ytdl-core, ytsr and ytpl YouTube nodejs libraries, but rather to use them directly. Switching to GStreamer also opened up a range of new possibilities.
Using GStreamer directly was done before but because of recent changes done by Jolla the previous example code stopped working, so I had to adapt it myself. Getting it to work and getting it to work reliably was a super pain, but super important as now I’m not limited by QtMultimedia and I can do anything I want: subtitles, changing video/audio, speed, anything.
With the new player I can play 1080p+ videos with even the possibility of playing 4K at 60fps. Additionally there’s login functionality along with comments so you can import subscriptions and like videos. plus better recommendations under videos.
In our testing of the app, we found it to be generally a very nice experience. Searching and watching videos, even subscribing, can all be done without the need for a YouTube account. For some of the deeper integration such as Likes you’ll need to provide an OAuth2 tokens.
We did hit a few bugs that caused the app to crash out along the way, but mostly these related to searching: once a video is playing the app is nice and solid. The user interface is nicely designed, with the video player being especially tightly focussed on the job of watching videos. For example going fullscreen just requires you to rotate your phone, after which swiping up and down controls brightness and volume, depending on whether you swipe on the left or right hand edge of the screen.
When you watch video in full screen, as in horizontally, there are gestures for brightness and volume control (first ever in history of Sailfish apps to have those) along with pinch gesture used to fill the screen when the screen or video isn’t 16:9.
We found there to be a few unexpected quirks. For example the split-layer page stack is different to how a usual Sailfish OS app might be expected to work, which can be a little disorientating, especially when trying to return to a video that’s already playing in the background. The default configuration also presents only four categories, which feels a little restrictive. But many of these quirks just take a little time to get used to.
There are also some hidden features that may not be so obvious when you first fire up the app. As Michał explains:
Integration with Juppi is pretty hidden, as it only shows up if Juppi is running in background
Michał is keen to thank the testers of the app for their work, especially ferlanero, and also interested to receive PRs to help move development forwards in the future. So what of the future for the app? Michał has plenty of interesting plans.
360° Videos, un-forcing VP9 once Jolla fixes playback of AVC1 so that microtube can work on older phones, posting comments, live chat.
No shortage of ideas then. Microtube is recommended for users who want to watch YouTube videos in the cleanest way possible on your Sailfish OS device.
Microtube wasn’t the only app to receive an update this fortnight. You’ll find all the latest Jolla Store updates in the Apps Ahoy! section below. But, before we look at these, let’s first take our usual stroll through the repositories with the repository roundup from Damien Caliste (dcaliste).
Repository roundup
A lot of repositories (several tens) have seen the creation of a new upgrade-4.4.0
branch. This has often been used to backport fixes from the development branch to a given Sailfish OS version, precluding (or not) a hot fix release like the 4.4.0.64 that happened a bit after 4.4.0.58 was out. These new branches didn’t receive any backport commits yet, though, meaning that they may be used for something else than a hot fix release. Let’s wait and see.
Browser stack
-
embedlite-components-search-engines
, the QML components used by the browser for search engines, modifications proposed by rainemak to comply with Google rules requesting consent when their search engine is used for the first time were accepted. -
sailfish-components-webview
, the high-level QML components exposing a web page, rainemak fixed an issue ending up with the browser preferences not being able to store values like the proxy port, see this forum question by ugeuder.
Network stack
-
connman
, the connection manager, LaakkonenJussi’s work on better support for traffic routing changes is still under active development.
QML bindings
-
nemo-qtmultimedia-plugins
, a plugin adding GStreamer as a QML video backend, the fix provided by karry on a null pointer dereference was accepted. -
libqofono
, the QML bindings to Ofono, the modification proposed by herrie82 to be able not to use the “Nemo” prefix in QML imports has been accepted.
Calendar stack
-
nemo-qml-plugin-calendar
, the QML for calendar access, dcaliste is proposing a change in the importation logic to allow it to discard organiser info so the event is not seen as an external invitation and can be modified. -
mkcal
, storage backend using SQLite for calendar entries, dcaliste is proposing a change in alarm handling for recurring events, fixing duplicated alarms for exceptions.
Software engineering
-
libglibutil
, a library extending GLib with convenient utilities, slava committed a fix to avoid test failures with the Musl C library wherestdout
is read-only. -
flex
, a free implementation of the lexical analyserlex
, thaodan fixed a typo in theBuildRequires
of the packaging. - Several package configurations were modified when they are using an upstream source, for the source repository to point to a mirror instead of the direct source repository.
SDK, documentation and developer tools
-
rust
, the memory safe programming language, rubdos is working on updating from Rust 1.52 to 1.61, the latest upstream. It still requires an upgrade of LLVM to at least version 12. -
docs.sailfishos.org
, website sources, various changes in the documentation were accepted or proposed:
- rainemak removed the mention of the old developer mailing list,
- mkosola added instructions to remove currently unavailable packages for the Xperia 10 II when building the image following the HADK. When available these packages will allow VoLTE on device, see this recent commit for the Xperia 10 II package patterns.
Apps ahoy!
Once again, we have a stellar fortnightly harvest of new and improved apps. It’s great to see so many developers putting in so much effort, all with the aim of providing us users with the best possible native-app experience.
Astute readers will notice that Microtube doesn’t appear in the list, and that’s because these are all apps that appear in the Jolla Store. We’re always interested to include apps wherever they’re published, so if your app isn’t in the Jolla Store but is nevertheless receiving regular updates, let us know in the comments so we can include it.
Now read on to find out how the latest apps can fulfil all your audio, gaming, graphics, mapping and measuring needs!
TVH Client
This is a brand new app released this fortnight by prolific Sailfish developer Samuel Kron (black_sheep_dev). We covered Evento, a new app released by Samuel in the last newsletter, and believe it or not, this is one of two new apps that Samuel has released since then.
TVH Client requires a TVHeadend instance to be running on your local network. TVHeadend is an impressively sophisticated piece of software that controls tuner hardware (e.g. a USB or PCI DVB tuner) in order to allow streaming and recording of TV programms. TVH Client allows you to manage the server directly from your phone.
So you’ll need both the right hardware and software installed on your server to make use of the client, but if you do then it’ll give you a bunch of nice functionality: an electronic programme guide, video streaming, managing recordings and even a cache for offline mode.
I wasn’t able to test out the features since I don’t have the right hardware, but if someone out there would like to give it a proper go, we’d be happy to share your results in the newsletter. In the meantime, if you have the prerequisites then you’ll no doubt find TVH Client to be a great new app.
The first release is version 0.3.1, available from the Jolla Store, OpenRepos and Chum.
OSM Scout
Lukas Karas (karry) has been hard at work improving OSM Scout. The app already provided a very slick online and offline mapping and navigation tool, but has now been improved even further with a variety of stylesheet improvements.
Stylesheets in the app allow you to view the maps with a variety of different preset styles. Different styles emphasise different aspects of the map such as cycle paths, bus stops or terrain. Changing the style has a surprisingly big impact on the utility of the map for different tasks, and it’s far more flexible than just satellite, road and night layers. The latest changes, for example have added a cycle stylesheet emphasising cycle routes, adds power lines to the outdoor stylesheet, and adds support for night colours.
But stylesheets aren’t the only trick OSM Scout has up its sleaves. It also has strong support for offline use, with easily downloadable offline maps and impressive offline routing. It also has voice navigation with a choice of 29 different voice styles.
OSM Scout has come a long way since we first featured it in the newsletter, to the point where it’s become one of the best native mapping solutions on the platform. Super impressive work.
Version 2.24 is available from the Jolla Store, OpenRepos and Chum.
Fernschreiber
Sailfish OS is blessed with multiple high quality native Telegram clients, one of which is Fernschreiber from Sebastian Wolf (WerkWolf). If you’re already a Telegram, WhatsApp or Signal user you’ll know what to expect, and Fernschreiber provides all of the main functionality that you might expect, but wrapped in a very nice Silica-style Sailfish interface.
The latest 0.16 release introduces message reactions, a number of bug fixes include Sailjail refinement to restore uploads from SD cards, link shortening and more.
Fernschreiber is available from both the Jolla Store and OpenRepos.
Zollstock
The second release from Samuel Kron (black_sheep_dev) this fortnight. Despite what you might expect, Zollstock doesn’t provide information about stocks and shares, but rather turns your highly sophisticated smartphone into something much simpler: a ruler for measuring distances. This might seem like an expensive way to measure things, but in practice it works surprisingly well. In addition to running a centimetre ruler down the right hand edge of the screen, Zollstock also adds two “measurement tools” — lines perpendicular to the rule that you can drag up and down the screen — which can be used for collecting precise readings, or for measuring distances that stretch beyond the height of the screen. It’s a simple but very effective addition.
It’s particularly nice to see that Samuel has included a very slick and helpful instructions tutorial. Again, this may seem like overkill for something as simple as a ruler, but it turns out to be very helpful, and very nicely presented.
The initial release 0.1.2 of Zollstock is available from the Jolla Store OpenRepos. Definitely one to have installed for emergency measuring situations.
Mah Solitaire
As the solitaire name suggests, Mah Solitaire provides a one-player gaming experience, built around the classic Mahjong tile set. Tiles are stacked into one of several fixed layouts, but with the tiles randomly permuted. Tapping a pair of identical tiles removes them from the board, the catch being that a tile must be fully exposed before it can be used this way.
Consequently you’ll often find yourself in the position of being able to see exactly which tiles you want, but without knowing the route that will fully expose them in order to trigger their removal.
Mark Washeim (poetaster) has been working on Mah Solitaire for some time now, with several iterations, to the point where it’s working very well. Built around a web-based game, Mark has even managed to have some of the adaptations needed for it to work well on Sailfish OS accepted in the original upstream version.
The latest version 1.5.1 incorporates these changes, and is available from the Jolla Store, OpenRepos and Chum.
QuasarMX
It’s been a while since we last featured QuasarMX from Andre Beckedorf (evilJazz) in the newsletter, but it remains one of our favourite music applications.
Despite it having a highly non-standard non-Silica interface, and being brimful of features, using it remains a fluid and intuitive experience. Panels swoosh to-and-fro with panes popping in from the edges with carefully aligned transitions. It’s a bit of a joy to use.
But as mentioned, it also packs some functionality too. Alongside the music and playlist management features you might expect, you also get audio mixing and equalizing, sleep timers, Last.fm scrobbing, katastrphos.net cover art and lyrics, a car mode, and a gloriously crisp full-screen player.
To gain access to some of these features you’ll need to pay €7 for the Pro version, but that seems a small price to pay for the care and attention that has clearly gone into crafting the app.
The latest version offers some minor user experience tweaks and bugfixes, most notably fixing an issue that previously prevented Bluetooth media keys from working correclty.
Version 2.4 of QuasarMX is available from Jolla Store.
SeaPrint
SeaPrint has been enjoying numerous rapid updates recently. And attah has pushed out another update this fortnight, allowing you to print from your Sailfish OS device to a networked printer even more seamlessly than before. The latest update optimises the rasterisation process (the process by which a document is converted into the pixels for the printer to print), amongst other changes. This brings it up to version 1.1.6, which you can get hold of from the Jolla Store.
It’s great to see such a popular and well-regarded app continue to receive regular updates.
Imageworks
Imageworks is another app that’s been receiving regular and solid updates since it’s maintenance was taken over by Mark Washeim (poetaster). Sitting alongside his audio and video editing software, Imageworks offers an impressive breadth of image touchup tools for editing your photos and graphics.
The app uses an unusual (for Sailfish OS) ribbon interface which manages to hide the underlying complexity well. It’s also possible to undo changes made to an image before saving out the result. There are a couple of downsides to editing images on a phone: the small screen size can make fine tuning and placement tricky, and some of the actions can take several seconds or even minutes to complete, depending on the size of image you’re editing and the type of device you’re using. But while you may not want to use your phone as your primary means of editing images, it’s great to have the functionality available when you need it.
The latest fixes permissions to allow images to be read from and written to SD cards, as well as improving the translations. Version 1.2.2 is available from the Jolla Store and OpenRepos.
Head up Display
This is a fascinating idea from rgrnetalk: show a speedometer on your phone with enough contrast and brightness that you can reflect it in glass to give a head up display.
The display can be mirrored so that it appears the correct way round when reflected in glass. But in practice I wouldn’t recommend its use when driving a car. Aside from any legal issues, there’s also a real risk of it causing a dangerous distraction.
Nevertheless it makes for a great proof-of-concept. The rendering of the speedometer is clear and straightforward, with both a numerical and gauge representation. On top of the gauge you can mark up to three speeds, presumably intended to be set to the most common speed limits for the country you’re driving in (they default to 50, 80 and 120 kph). You can also set the app to block the screen from turning off after its usual delay.
The latest version fixed an issue that prevented it from working correctly, while earlier updates have improved orientation and the speed limit indicator support. This brings the version up to 0.20, which is available from the Jolla Store.
Evento
The third update from Samuel Kron (black_sheep_dev) this time, Evento was released just a few weeks ago, and already has new features added with this update.
When we looked at Evento in the last newsletter, we said it was a rather nicely presented app for counting up away from or down towards particular events. However we also noted that it lacked the ability to have recurring events, such as birthdays.
It’s really nice to see this now addressed with the latest update, which allows for events that repeat weekly, monthly or yearly, as well as also having one-off events as before. This makes it a whole lot more functional, and it’s always great to see a good app getting even better.
The 0.2.2 version is now available in both the Jolla Store and on OpenRepos.
Please feed us your news
We hope you enjoy this community news, which we’ll continue to refine over the coming months. This is your news, and frankly we can’t always keep up with all the exciting stuff happening in the Sailfish community, so please help us out by replying to this post in the forum if you’d like to see something included.
And do also join us at our community meetings on IRC, Matrix and Telegram. It’s a great place to discuss any of the content you see here, ask questions and share your ideas. The next meeting will be on the 7th July.