At Mobile World Congress 2018 in Barcelona, Spain, Google today announced the first beta release of Flutter, a mobile UI framework that is designed to help developers create native interfaces for iOS and Android apps.
Google says that "Flutter targets the sweet spot of mobile development: performance and platform integrations of native mobile, with high-velocity development and multi-platform reach of portable UI toolkits."
Flutter consists of a react-style framework, 2D rendering engine, a suite of ready-to-use widgets, and development tools. An alpha version of the framework was launched last year and since then, Google has been busy making improvements that are available in the beta release announced today.
Features of note include:
- A collection of widgets. In Flutter, everything is a widget and the Flutter widget collection covers a number of categories, including layout, text, media, input, scrolling and accessibility. There are also widgets designed specifically for iOS and Material Design guidelines.
- Hot reload functionality. This injects updated source code files into the running Dart Virtual Machine so that developers can more easily test changes to their app. Google says Flutter's hot reload delivers sub-second reload times and it is stateful so state is not lost when an application is hot reloaded.
- Shared packages. There are already more than 1,000 packages that work with Flutter. These packages support a variety of third-party solutions and services, including SQLite, Firebase, Facebook Connect and GraphQL. Developers can create and share their own packages, so as Flutter grows in popularity, the number of packages will likely increase.
Google says that while Flutter can be used to build apps that have a stock platform look and feel, it is an especially powerful tool for building “brand-first designs.” Flutter apps run via natively compiled code so they perform better than apps run via interpreter and Flutter has been designed to deliver a "constant 60fps."
Unlike many tools that have aimed to provide a single framework through which iOS and Android apps can be developed, Flutter does not rely on WebView or the OEM widgets that are baked into a device and instead has its own rendering engine.
What's more, Flutter has a limited amount of C and C++ code. Most of Flutter has been built with Dart, an object-oriented language Google originally developed. As a result, Google notes that “developers can easily approach read, change, replace, or remove” key functional components, giving them a high level of access to and control over the system.
Google says that numerous teams across Google are using Flutter to build apps. For instance, Flutter was used to build Google’s mobile sales tool app as well as the Store Manager app for Google Shopping Express.
Third parties that need to build high-quality, high-performing apps quickly and as cost-efficiently as possible, such as startups and agencies, are also already adopting Flutter. As an example of this, Google points to the app for the hit Broadway play Hamilton: The Musical, which was built with Flutter.
Going forward, Google intends to release new betas approximately every four weeks with a focus on stabilization and scenario completion as it approaches a 1.0 release.