Google is launching Flutter 1.0, the first stable release of its open source, cross-platform UI toolkit and SDK. Flutter lets developers share a single code base across Android and iOS apps, with a focus on speed and maintaining a native feel. The announcement was made today at Google's Flutter Live conference in London—a show dedicated entirely to the launch of Google's new developer track.
Flutter enables cross-platform app code by sidestepping the UI frameworks of both Android and iOS. Flutter apps run on the Flutter rendering engine and Flutter framework, which are shipped with every app. The Flutter platform handles communication with each OS and can spit out Android and iOS binaries with native-looking widgets and scrolling behavior if desired. It's kind of like applying a "video game" style of development to apps: if you write for a game engine like Unity or Unreal, those engines are packaged with your game, allowing it to run on multiple different platforms. It's the same deal with Flutter.
Flutter apps are written in Dart, and the SDK offers programmers nice quality-of-life benefits like the "stateful hot reload," a way to instantly make code changes appear in the emulator. For IDEs, there are plugins for Visual Studio Code, Android Studio, and IntelliJ. Apps come with their own set of Flutter UI widgets for Android and iOS, with the iOS widgets closely following Apple's guidelines and the Android widgets following Google's Material Design.
Flutter is designed to be fast, with its custom app engine running on Google's hardware-accelerated Skia engine. This means 60fps apps on Android and iOS and a path for 120fps apps in the future. This is a bigger deal on Android than it is on iOS.
Despite Flutter just hitting Android 1.0 today, there are already apps out there using the toolkit. The Google Ads app is built on Flutter, which is a pretty big sign from Google that the company thinks Flutter is ready for prime time. The Flutter site has an app showcase here, but for good examples, check out the Hamilton Musical app (Android/iOS) or the Flutter Design Lab app (Android).
Of course, Flutter is Google's other mobile development track. Google already has Android, which has grown to be the world's most popular operating system. Popularity doesn't mean Google is willing to leave the OS alone, and through Flutter Google is doing its usual strategy of building "two of everything" and coming up with an in-house competitor for Android.
Flutter ships its own app engine on Android and iOS, but in secret, Google is also developing an OS called "Fuchsia" that runs these Flutter apps natively. Sure, Google has Android today, but Android is 10 years old and was designed before the world was sure that all-screen, multitouch, 60fps, iPhone-style smartphones were the future. Similarly, the Linux Kernel that powers Android is 27 years old and was originally designed for PCs. There's a lot of legacy cruft in Android, and if you want to look at what blowing that all up and starting over would look like, look no further than Fuchsia.
With Fuchsia, Google would switch from the Android apps written in Java to Flutter apps written in Dart. The crazy thing is that switching to Fuchsia would also mean dumping the Linux Kernel. Unlike Android, Fuchsia is built entirely from scratch using a kernel called Zircon. Fuchsia, as the hype promises, would be the ultimate Google OS: a Google-developed operating system, powered by a Google-developed kernel, with apps written in a Google-developed programming language.
As we've learned with Windows Phone, Blackberry 10, and countless other upstart OSes, succeeding in the smartphone market is all about your app ecosystem. If you don't have a ton of apps, consumers just aren't interested. Wouldn't it be a great plan, then, if you could get developers to build apps for your new operating system years before it comes out? That is basically what's happening here with Flutter and Fuschia—since Fuchsia is the "native Flutter" OS, every developer that's building a Flutter app for Android and iOS is also building a Fuchsia app, whether they know it or not. The Fuchsia site actually describes Flutter as "optimized for Fuchsia" and states that Flutter "also runs" on Android and iOS, as if these two platforms are just a side project.
Everyone gets hyped up about a new operating system, but it's important to exercise restraint when talking about Fuchsia. Development only started in 2016, and while today you can get Fuchsia up and running on some devices, it is nowhere near ready for prime time. Android had five years of development before it came to market, and it had the benefit of starting with the Linux Kernel as a base; Fuchsia is starting from scratch. A report from Bloomberg earlier this year said Google's Fuchsia release timeline pegged 2021 for simpler things like an embedded Fuchsia smart speaker OS (which would be five years of development!), and readying the OS to be an Android replacement would hopefully happen "the next half decade," meaning the year 2023.
Given that Fuchsia still needs a lengthy three to five more years of development time and the daunting task of building an OS from scratch, a successful Fuchsia release—or even surviving the development process—is an incredible long shot. If you want to peg a consumer-facing release as "step one" of Fuchsia's road to reality, though, the 1.0 release of Flutter is it.