In its second and final Release Preview before 1.0, Flutter, Google’s cross-platform app development framework, has added and updated dozens of iOS-themed widgets, for ‘pixel-perfect’ iOS app experiences.
While Flutter has, from the beginning, supported both Android and iOS, the framework’s ability to create apps that follow Apple’s interface guidelines has been fairly slim. By comparison, the Material Design options available for Flutter are vast, and is thus considered a “first-class toolkit” for Material Design.
With Release Preview 2, Flutter is changing this by revamping its ‘Cupertino’ widget set with dozens of new or updated widgets. To demonstrate the capabilities of Cupertino, the developers recreated the UI of the iOS Settings app in Flutter. To get a feel for all of the widgets offered by Flutter’s Cupertino, you can check out the visual widget catalog, though it is still in the process of being updated with the new additions.
It’s important to remember that Flutter doesn’t use the native platform’s widgets directly. This means there’s nothing preventing a developer from using Cupertino widgets on Android or Material widgets on iOS.
The decision to use one or the other (or a completely custom theme) falls on the individual developer.
Another major improvement in the update is the ability to run Dart code in the background. This is handy for running tasks based on timers, GPS data, or other background information available on either platform.
As it progresses towards release, Flutter has also been working on reducing the minimum size of apps produced, and has already seen a 30% reduction (4.7MB, down from almost 7MB). The team is committed to getting that number even lower before the 1.0 release.
Flutter is already extremely capable of making apps for Android, Chrome OS (via Android), and Fuchsia that feel native to Google’s platforms. It’s nice to see that Google isn’t just going to leave iOS developers behind like second-class citizens.