This article is more than 1 year old
Time for a little bet on Google? App-building framework Flutter now fitted for more than phones – desktops, too
Dart-based dev tool aspires to allow the creation of software that runs everywhere
Google's cross-platform mobile Flutter SDK reached its 1.0 milestone on Tuesday, an event marked at the Flutter Live conference in London.
The open source framework allows developers to write mobile applications in Dart, a programming language not widely used outside of Google, and run them on both Android and iOS devices. Soon enough, it should be able to create apps that operate nearly everywhere else – Google says it is working on Flutter for Windows, MacOS, and Linux, for the web, and for Raspberry Pi.
Making a single code base work on both Android and iOS is more of challenge than it might seem because each platform has its own peculiarities. Cross-platform development frameworks offer the ability to write programs that run on multiple operating systems, but they often require extra work to ensure compatibility. The old joke about Java – write once, debug everywhere – has been true for cross-platform frameworks.
That's one reason Apple co-founder Steve Jobs hated them (aside from the fact that cross-platform frameworks disempower platform owners).
In a blog post, Google group product manager Tim Sneath, acknowledges as much. "Cross-platform mobile development today is full of compromise," he says. "Developers are forced to choose between either building the same app multiple times for multiple operating systems, or to accept a lowest common denominator solution that trades native speed and accuracy for portability.
Flutter, he insists, offers the best of both worlds, through hardware-accelerated graphics and interface elements. But even if this turns out to be an overly charitable interpretation of Flutter's prowess, enterprise IT shops tend to tolerate quirks and ugly UI to make app support and maintenance easier.
When big dogs play
While there are already a variety of software frameworks like Apache Cordova, Corona, Phone Gap, Ionic, React Native, and Xamarin that support cross-platform mobile apps, Flutter gets attention because it's supported by one of the two major players in the mobile ecosystem, Google, and because the other contender, Apple, hasn't shown much interest in cross-platform development beyond unifying the UI frameworks used in iOS and macOS apps.
Mate, have a Flutter on the Darts: Google's mobe app toolkit for Fuchsia, others emergesREAD MORE
What's more, Flutter apps are expected to be supported in Google's future Fuchsia operating system. So developers see Flutter as an opportunity to prepare for Android's potential successor. And the scope of Google's ambition for Flutter– running on the major desktop and mobile platforms, as well as the web – makes it difficult to ignore.
Already, a handful of not-too-shabby companies have dipped their toes in the pool. According to Sneath, Abbey Road Studios, Alibaba, Capital One, Groupon, Hamilton, JD.com, Philips Hue, Reflectly and Tencent have either shipped or are in the process of developing Flutter apps for their customers.
If Flutter can really deliver cross-platform apps that run well on a broad enough set of devices, Apple may find fewer developers want to limit themselves to native platform development. Microsoft, with Xamarin, at least has an alternative offering.
The developers who have written accounts of their Flutter experiences have been generally positive, though not unequivocally so. Google's survey on the subject in July found 92 per cent of Flutter users surveyed described themselves as either very satisfied or satisfied with the framework.
Flutter reached its preview milestone in June and now goes forth under a combat-ready 1.0 designation. The release boasts many bug fixes, as well as support for more Firebase services, speed improvements, app size optimization. The Flutter team is also previewing support for platform view widgets (AndroidView and UiKitView) that allow the embedding of native platform content (e.g. Google Maps). ®