Hi, I just learned about Sailfish OS from YCombinator and I thought that this forum would be more appropriate to share my reaction as a developer.
I don’t know how well the Android compatibility layer works, but I suspect that native would always work better. Yet, I find it, very hard to come up with a business case where it would make sense to invest in building QT apps for such a niche OS. In fact, we don’t have separate implementations for the mainstream OSs like Android and iOS. Yet, our apps run natively on Android and iOS… and Linux, and Windows and MacOS and even as PWAs, because they are Flutter apps.
When I say that our apps run natively I actually mean natively. Flutter doesn’t produce hybrid applications that look native but are actually packaged web applications. No, Flutter produces actual native code on each of the platforms that it targets. It has two not so secret sauces. One is the Dart language, which compiles natively to each of the platforms it targets (one of them already being Linux - this is important for Sailfish OS - Flutter Linux Embedder: Main Page ). The other is that rather than trying to adapt to each platform’s very different set of widgets, Flutter draws everything on a canvas. It works like a game engine, making for an extremely consistent development experience across platforms.
So, if we could just compile our Flutter apps as Sailfish OS native apps, we would do it in a heart beat. Of course it would require testing on an emulator and on actual devices, but the effort required is minimal when compared to having an entirely separate implementation (and being Europeans we’d love to publish our apps to a European platform!).
Some facts about Flutter:
- There is an outdated claim about there being more than a million published Flutter apps. Imagine just a small fraction of them getting published as Sailfish OS native apps as well. With over 1M published apps, Google's Flutter expands its support for web apps and WebAssembly | TechCrunch
- Toyota is embedding Flutter in its infotainment systems.
- Canonical is betting on Flutter for desktop apps and they’re contributing to Flutter to make it feel better integrated into the Linux desktop.
- Coming from our own experience, while Flutter gives us this wonderful abstraction over the OS that we’re working on, it doesn’t prevent us from diving to the platform level to take advantage of platform specific features.
While I am talking a lot about Flutter, I am doing so because that is the platform that we have the most experience with. I suppose that most of what I said could well be applied to Kotlin KMP and, especially Kotlin CMP (it also looks very promising). So, while I am not strictly suggesting that you should run to make Sailfish OS a target of Flutter, I am suggesting that as one of two possibilities. The other option would be to make Sailfish OS a target of Kotlin CMP.
Let me put this in a different way. If Sailfish OS were to provide its own Flutter embedding or Kotlin CMP embedding, it would be running apps that had been developed to run on Android (and other platforms) without needing those apps to go through the Android runtime itself.
Either case would possibly bring in a ton of mobile developers that QT will never be able to.