The Linux operating system has all the advantages of security, performance and openness, but many computer users do not use the Linux operating system due to the software catalog. Linux doesn’t lack applications, but Linux lacks applications such as those used on Windows and Mac and even Android and iOS. There are many projects trying to achieve some kind of compatibility with these applications, such as WINE for Windows and Anbox for Android. However, another strategy is to create applications that run on all or most platforms. This is the premise of Flutter, which has only made its way to Linux at least on Ubuntu Linux.
Flutter is Google’s framework for writing so-called cross-platform applications, i.e. applications that can run on multiple platforms with little or no source code modification. Originally designed to write mobile apps that run on Android and iOS with a single codebase, Flutter has expanded to support desktop operating systems and turned it into a promising app development framework to rule all apps.
Google and Canonical, the company behind one of the most popular Linux distributions, are teaming up to bring Flutter support to Linux. With existing support for Android, iOS, Web, Windows, and macOS, Flutter pretty much delivers on the “write once, run anywhere” promise that developers love to hear (Java is well known and notorious). Of course, developers may still have to write code specific to each platform for some specific details.
This presents many opportunities for Linux users and developers. On the one hand, this potentially means that users will have access to more applications than native Linux or web applications, especially those that may have been written with mobility in mind, including games. Linux developers will also now have more opportunities to write software for other platforms without having to run other platforms (except for testing).
Of course, it’s not perfect, at least not yet, and there may still be some hard problems to solve. It also doesn’t magically work because developers still have to put some effort into making sure mobile apps perform well on desktop and vice versa. Finally, Flutter’s Linux implementation depends on Snap, Canonical’s controversial native package management system and app store that may not be available on other distributions.