Google has released version 1.17 of its popular UI framework, Flutter. Flutter is a cross-platform UI framework used for developing Android, iOS apps, and now it’s moving towards the web. Along with Flutter, a stable version of Dart programming language in which Dart 2.8 has also been released.
Flutter is predicated upon dart. This version of Flutter has closed 6,339 issues and made many performance level improvements. As the world is facing a crisis due to widespread pandemic and most folks are in lockdown, Flutter has named this release as Work-From-Home Edition.
Let’s see top Flutter 1.17 features bundled with this stable release:
The last stable version of Flutter was 1.12, which was released in December 2019. It is the 6th stable release from Flutter since the discharge of 1.0 in December 2018. This release has done several works on performance and memory improvements. So, let’s see what’s new in Flutter 1.17?
- 20-37 percent Speedy Navigation within the default case
- Up to 40 percent decrease in CPU/GPU usage for animations in iOS
- Reduced application size up to 18.5 percent
- 70 percent of memory reduction scrolling through large images
- The default use of Apple’s Metal graphics API, improving rendering time by around 50 percent on iOS
This recent release has focused on the optimization part, which is hugely beneficial for all the Flutter freaks. Flutter 1.17 has introduced a new widget NavigationRail designed by Material Design Team and has also improved the fabric DatePicker widget.
A new animation package provides a pre-built animation effect within the transition of UI elements. Flutter 1.17 has better the accessibility of Flutter apps with fixes to scrolling, text fields, and other input widgets.
Important Updates of Flutter 1.17
This release brings us on the brink of swapping out the present version of Dart DevTools with the new Flutter version. Another improvement is an experimental “fast start” option allowing you to start Flutter app debugging up to 70 percent faster when you’re developing an app for Android.
Improved Mobile Performance and Size Improvements
The Flutter 1.17 release is focused on the overall performance and memory improvements. Just by upgrading your app to the present version, your users should see faster animations, smaller apps, and lower memory utilization.
With this release, there is a 20 percent – 37 percent speedup for the default navigation case (opaque routes with no transparency). Also, you will see up to a 40 percent reduction in CPU/GPU usage for smooth iOS animations, counting on the hardware.
This release also provides a substantial app size improvement with several fixes that add up to an enormous result. For instance, the Flutter Gallery sample for Android was 9.6MB in 2019 and is now 8.1MB, which is an 18.5 percent reduction.
For memory usage, this release brings a 70 percent memory reduction in fast scrolling through large images, which may also end in a performance increase counting on what proportion of memory the device has.
Metal Support Improves Performance by 50 percent on iOS
Apple’s support for Metal on iOS provides nearly direct access to the underlying GPU and is Apple’s recommended graphics API. On the iOS devices that fully support Metal, Flutter now uses it by default, making your Flutter apps run faster most of the time, increasing rendering speeds by about 50 percent on the average.
Material Widgets: NavigationRail, DatePicker and more
We still evolve and improve the fabric design system implemented in Flutter, supported feedback from internal and external customers. During this release, we’ve added NavigationRail, a replacement widget that gives a responsive app navigation model. It had been designed and implemented by the Google Material Design team. The NavigationRail is excellent for apps that will switch between mobile and desktop form factors because it’s straightforward to swap a certain BottomNavigator as your app’s screen size increases.
- The new NavigationRail widget
- Updated Material DatePicker widget
- Updated text selection overflow on Android
- Updated text selection overflow on iOS
Material Text Scale: Modernizing Flutter Text Theming
In this release, the Flutter team has completed its implementation of the sort Scale portion of the 2018 Material Design specification while not breaking existing Flutter apps. This release updates the TextTheme API to match the present Material spec but maintains the old names so that the code doesn’t break.
Google Fonts for Flutter
Text and fonts go hand in hand, so if you’re excited about the new Material Text Scale implementation, then you’re probably also getting to be passionate about the unique Google Fonts for Flutter v1.0 release.
Google Fonts are easy to use in your Flutter apps and allows developers to experiment with any of the Google fonts from fonts.google.com in their app.
When the app is ready for deployment, the developer can decide whether the user will receive the font by downloading it from the API, or is pre-bundled with the app package.
Accessibility and Internationalization
Lastly, a crucial area of continued focus is accessibility, since we consider it a priority that Flutter apps are available to the broadest possible audience. This release includes accessibility fixes for scrolling, text fields, and other input widgets.
There is a full list of the accessibility issues which are fixed by this release on GitHub.
On the internationalization front, they have been performing on some issues affecting Samsung keyboard IMEs that affected text input in various East Asian languages.
This release brings us very on the brink of swapping out the present version of Dart DevTools with the new Flutter version.
While you’re using the pre-release version of Dart DevTools implemented with Flutter, you’re likely to note all types of improvements, but the most important one is that the new Network tab.
In addition to an updated Dart DevTools, this release also adds support for an experimental “fast start” option, which allows you to start your Flutter app debugging the maximum amount as 70 percent faster when targeting Android. This feature installs a generic Android app that only depends on plugin code, excluding any Dart code or assets.