Flutter 1.17 and Dart 2.8: New packagement tool & improvements
The newest releases for Flutter and Dart are here. Flutter works on performance improvements and Dart includes a new package management tool. This is the first stable release of Flutter in 2020, so let’s see what it and Dart add.
Dart and Flutter go hand-in-hand. In 2019, GitHub’s State of the Octoverse named Dart the fastest-growing language according to the number of contributors, partly due in fact to the popularity of the Flutter framework.
This is the first stable release of Flutter in 2020, so let’s see what it contains and what Dart added in the update.
It’s here! 🎉Flutter 1.17
✅Metal support for faster iOS performance.
✅New Material components.
✅New network tracking tooling, and more.
What are you going to build? #FlutterGoodNewsWednesday
— Flutter (@FlutterDev) May 6, 2020
This Flutter release focuses mainly on fixing a large number of bugs for improved performance and stable user experience.
According to the announcement by Chris Sells, in 2020 the Flutter community fixed roughly 800 issues, with over 3,000 pull requests and 231 contributors.
Furthermore, Flutter’s update improves mobile performance with a speed-up of up to 37% for the default navigation case. It also reduces CPU/GPU usage during iOS animations by up to 40%.
The size of applications has also been reduced, as well as new memory reductions during fast scrolling through large images.
Support for Apple’s Metal on iOS improves up to 50% on devices that fully support it. (See the FAQ for Metal and Flutter.)
Additional Flutter changes
Besides performance improvements, 1.17 sees a long list of changes, including:
- New and improved Material widgets. 1.17 adds the NavigationRail widget, which is used for responsive app navigation tools and excels in apps that can easily switch mobile and desktop forms.
- Updates to the Material DatePicker includes new visuals and a new text input mode.
- New Google Fonts added for easy implementation into apps.
- An update for the TextThemeAPI completes the Type Scale portion of the 2018 Material Design specification, powered by Google Fonts.
- Various accessibility improvements. See the full list of closed issues on GitHub.
- For those developers targeting Android, AndroidX is now the only option when creating a new project.
- Support added for an experimental “fast start” option when targeting Android.
See the full changelog for Flutter 1.17.
📣Announcing Dart 2.8: Including pub outdated!
Modern apps often depend on many packages, and keeping these dependencies up-to-date can be time consuming.
✨Pub outdated scans which dependencies are stale and enables you to update them quickly.
— Dart Language (@dart_lang) May 6, 2020
Work on null safety continues in Dart 2.8. The upcoming feature is currently not fully stable, but a few small breaking changes to the language and some libraries have been made in preparation for it.
See the list of breaking changes here on GitHub.
You can test out the null safety feature in the in-browser playground DartPad.
A new tool arrives in Dart 2.8 for managing the package ecosystem. Pub outdated automatically checks your dependencies and determines which require an update. It will maintain the health of your dependencies and keep them up to date.
The tool also receives performance improvements and supports parallel package fetching when running
pub get . Dart 2.8 also speeds up the time it takes to run
flutter pub get on a new project.
Review the new tool and see an example of how to use it in the documentation.