Google’s first 2020 update has brought Flutter up to version 1.17 and the associated Dart language to 2.8 on the 6th of May. So let’s focus on what’re the new features and improvements we’ve received with this update.

New Material Widgets

NavigationRail Widget

NavigationRail is a new Flutter widget that offers a responsive app navigation model. The NavigationRail is great for apps that can switch between mobile and desktop form factors because it’s very easy to swap in for a BottomNavigator as your app’s screen size increases. You can see this widget in action on this Dart pad.

The new NavigationRail widget
NavigationRail widget

 Improved Material DatePicker & TextSelection Widgets

The updated DatePicker comes with new UI updates for the latest Material design guidelines and a new text input mode. TextSelection widget also now has improved fidelity for iOS and Android when buttons are longer than can be displayed without overflowing. 

New Animations Package

Flutter 1.17 also comes with a new Animations Package that provides pre-built animations implementing the new Material motion specification. This package contains many pre-build animations for commonly-desired motion effects. You can also use package’s API to customise pre-built animations with your content and drop into your application to delight your users.

New Animations Package Preview (Credit: Flutter Team)

Modern Text Theming

This release updates the Flutter’s TextTheme API to match the latest Material design standards. If you’re already using this API, your app won’t break with this update, however, you will get deprecated warnings so you better adopt new changes now before it too late.

Metal Support on iOS

Metal is Apple’s low-level graphics API that provides nearly direct access to the underlying GPU of iOS devices. As of this release, Flutter uses Metal by default when building for supported iOS devices, making Flutter apps run faster.

 The improved Metal support improves rendering speeds of iOS apps by about 50% on average.
The improved Metal support improves rendering speeds of iOS apps by about 50% on average.

New Networking Tool

Thanks to the new Dart DevTools update, you no longer need to rely on 3rd party tools to inspect network traffic. Thus new network traffic inspection tool included with Dart DevTools will help you debug the tricky state conditions that can occur or explain why the data sent or received from your backend service is not what you expected. All you need to do is open the network tab on your DevTools and start recording your traffic.

New Networking Tool

Fast Start Command

“Fast Start” is a new experimental option which allows you to start your debugging app 70% faster when targeting Android. You can try this option with the command below;

$ flutter run —-fast-start -d 

Performance Improvements

Flutter 1.17 update becomes more interesting with new performance tuning. According to the Flutter dev team, these are the new benchmarks;

  • 20%-37% speedup for navigation in the default case
  • Up to 40% reduction in CPU/GPU usage for animations & 50% faster rendering time on iOS thanks to Metal support.
  • Reduced application size. Typically of around 18.5%
  • 70% memory reduction scrolling through large images

Hot Reload Improvements

In early versions of Flutter, if you had any analysis errors, even it’s not in the code you currently running, Hot Reload wouldn’t reload your app. This annoying behaviour has been fixed with this update and, you will see hot reloading on Android Studio, and IntelliJ is more resilient.

Dart 2.8 SDK

Here’re the changes and improvements coming with the release of the Dart 2.8 SDK;

  • Several improvements have been introduced to pub client tool which the dart package manager. Now it supports parallel fetching and deferring pub run precompilation. So you will see faster package download and compilation time.
  • A new tool (pub outdated) for ensuring package dependencies are kept up-to-date.
  • Preparation for Sound null safety which reduces application crashes.

Accessibility Improvements

Google resolved number of issues related to accessibility is with this release which will fix number of accessibility issues in scrollingtext fields, and other input widgets.

Google Fonts 1.0

Finally, a stable version of Google Fonts plugin is here with the latest Flutter release. We’ve written a whole article explaining how to use GoogleFonts within your Flutter apps.

6000+ Issues Resolved

Thanks to the hardworking Google’s Flutter team and community members, 6339 known bugs and issues fixed in Flutter code. This is excellent news for people who work with Flutter every day and got frustrated with unresolvable problems due to these bugs.

New Release Process

The previous release version numbers of Flutter was a little bit confusing sometimes. Now they have resolved this by adding pre tags with the release number. You can find the full technical details about this on Flutter’s GitHub repo.

Android X by Default

If you’re still not updated your Android libraries with AndroidX, it’s time to do so because AndroidX libraries are now required for new projects. However, existing applications that do not use AndroidX can still be compiled.

Feel free to write your feedback on comments section. Thank you for reading!