User avatar
mia (developer mode)
@mia@shrimptest.0x0.st
contrary to android, sailfish OS does not require app devs to follow a specific process/lifecycle model. for anything you submit to the jolla store, the requirement is that backgrounded apps minimize their resource consumption, with no enforcement being done on the OS side.

when the system runs out of memory, it will handle that with a user-space daemon that preferably kills backgrounded apps. apps that crash or get killed like that will remain on the app grid with a faded appearance, and get relaunched if you tap them. it is the developer’s responsibility to restore state upon relaunch. there is no energy monitoring for apps other than through 3rd-party or developer-mode programs.

i believe this is good enough: developers are already disincentivized from writing inefficient software because users will notice that their stuff dies or their phone gets warm whenever they use it. and they will complain. yes: the phone getting warm is very unusual with sailfish apps. even without any of android’s per-app energy saving measures, sailfish OS has longer battery runtime and degrades batteries at a much slower rate.

it is also not hard to minimize resource consumption because the native toolkit is based on qtquick 5 components and few apps have other dependencies (most of which are, as with linux distros, shared libraries and not bundled with the app). some apps don’t even have native code at all, and run entirely in the preinstalled QML engine. if your app is just some small game or a frontend to some web API, that is all you need. this means that app packages are very small and do not use much physical memory at runtime.

it’s also worth noting that the primary app store does not offer paid apps, and the system integrates no payment services. this may not make the platform look very attractive, but ensures a mostly slop-free experience. plus: if you target desktop linux, you can easily target sailfish OS, because it is built on the same software stack and freedekstop.org specifications as mainstream linux distributions. this makes it the only usable phone OS that does not discourage cross-platform software.