For all its benefits in security, performance, and openness, the Linux operating system is still avoided by many computer users because of its software catalog. It’s not that Linux lacks app but it lacks the sort of apps that people are used to on Windows and Mac or even on Android and iOS. There is no shortage of projects that try to bring some sort of compatibility with those apps, like WINE for Windows and Anbox for Android. A different strategy, however, is writing apps in a way that makes them run on all or most platforms. That’s the premise behind Flutter and it’s now coming to Linux, at least on the Ubuntu flavor of Linux.
Flutter is Google’s framework for writing what is called cross-platform applications, that is, applications that can run on multiple platforms with little or even no modification to the source code. Initially intended for writing mobile apps that work on both Android and iOS using a single codebase, Flutter has been extended to support desktop operating systems, turning it into a promising application development framework to rule them all.
Google and Canonical, the company behind one of the most popular Linux distributions, are teaming up to bring Flutter support to Linux. With already existing support for Android, iOS, Web, Windows, and macOS, Flutter is close to delivering that promise of “write once, run everywhere” that developers love to hear (which Java was both known and notorious for). Of course, developers might still have to write code specific to each platform for some specific details.
This presents several opportunities for both Linux users and developers. For one, it potentially means that users will have access to a wider variety of applications beyond native Linux or web apps, especially ones that may have been written with mobile in mind, including games. Linux developers will now also have more opportunities to write software for other platforms without having to run those other platforms (except for testing).
Of course, it’s not perfect, at least not yet, and there might still be some rough corners that will need to get ironed out. It also won’t work magically as developers will still have to put in some effort to make sure that mobile apps behave well on the desktop and vice versa. And lastly, Flutter’s Linux implementation depends on Snap, Canonical’s rather controversial homegrown package management system and app store, which may or may not work on other distributions.