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
- New Animations Package
- Modern Text Theming
- Metal Support on iOS
- New Networking Tool
- Fast Start Command
- Performance Improvements
- Hot Reload Improvements
- Dart 2.8
- Accessibility Improvements
- Google Fonts 1.0
- 6000+ Issues Resolved
- New Release Process
- Android X by Default
New Material Widgets
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.
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.
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.
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.
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
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.
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!