Flutter goes 1.17

Flutter is Google’s open source mobile UI framework for crafting  native interfaces on iOS and Android and this new release is the first stable release of 2020.

Flutter 1.17 includes Metal support for faster iOS performance, new Material components, new Network tracking tooling and is full of fixes – with an unprecedented 6,339 issues closed since the previous stable release.

According to Chris Sells, Product Manager, Flutter developer experience, the major focus of this release has been on performance and memory improvements. He claims:

Just by upgrading your app to this release, your users should see faster animations, smaller apps and lower memory utilization. In this release, you’ll see a 20%-37% speedup for the default navigation case (opaque routes with no transparency). You’ll also see up to a 40% reduction in CPU/GPU usage for simple iOS animations, depending on the hardware.

Thanks to bug fixes, the release has achieved a  considerable app size improvement – for example, the Flutter Gallery sample for Android which was 9.6MB at the end of 2019 and is now 8.1MB, which is an 18.5% reduction. There is also a reduction in memory usage with a a 70% memory reduction in fast scrolling through large images, which can also result in a performance increase depending on how much memory the device has.

For iOS the biggest performance improvements come from support for Metal which is now used by default in Flutter and increases app speed by 50% on average. For devices that don’t support Metal fully (those prior to the A7 processor or those running iOS versions prior to 10), Flutter continues to use OpenGL which provide native rendering speeds for older devices. The speed improvement thanks to Metal can be see in this chart of frame rendering time in which shorter bars are better:

The new Material components include NavigationRail, a widget that provides a new responsive app navigation model and easily swaps in for BottomNavigator and is, therefore, a good candidate for apps that switch between mobile and desktop. In addition DatePicker has been redesigned with new Material guidelines, visuals, and inputs. 

The new Network tab is part of the pre-relase version of Dart DevTools implemented with Flutter. Once the record button is selected, it shows you network traffic for your Flutter app and also makes it easy to enable network traffic logging immediately  you start your app.

This release also adds support for an experimental “fast start” option, which lets you start your Flutter app debugging as much as 70% faster when targeting Android. Another change if you’re targeting Android is that AndroidX is now the only option when creating a new Flutter project. 

Sells concludes his post on Flutter 1.17 saying:

Flutter brings with it the promise of solving a problem that our industry has wrestled with for decades: how can you build great apps from a single source code base across multiple platforms? With all of the power and capability that Flutter provides, we think we’re on a good path to answer that question. 

Chris Sells, Product Manager, Flutter developer experience,

More Information