For those of you who know nothing about it, Flutter is a free open source mobile user interface development kit from Google, first released in 2017. With Flutter, one can create a mobile app with universal code, so using a single programming language and single basic code, you create apps both for IOS and Android operating systems.
Due to this cross-platform nature, more and more companies choose Flutter for the development of their branded products for multiple platforms. Nubank is a great recent example; it is a large digital bank in Latina America. They managed to combine the front-end development team into one framework, which allowed this bank to launch new functionality both on iOS and Android at once. There are quite a few similar success cases around the world. So, here we look at the main innovations that Flutter received in 2020.
Updated release cycle
These innovations ensure the stability and regularity of new releases. The previously used cycle was conceived to be simple and not requiring regular maintenance works. The scheme worked well at the time when the project was small, and a small team worked on it. But with the existing volumes and scales, the developers faced difficulties such as no clarity regarding the release timing and the code that must go into the release, and no branch testing, leading to regression errors in hotfix releases.
Starting with the April release of Flutter, the development team moved to a branching model with a stabilization period for beta and stable versions. Now they create code branches at the beginning of the month for the beta version and stabilize this version by collecting all critical fixes. About once a quarter, the current beta branch is promoted to a stable version, and if necessary, the developers will make corrections to it. This allows for branch testing, and the development team can validate the builds and accept requests based on their importance.
Besides, they took this opportunity to combine the release cycles and channels of Flutter and Dart. As a result, a beta channel has been added to Dart, which will allow synchronization of releases in the future. Flutter beta releases will now contain Dart beta releases.
As part of the new branching model, the development team also made versioning changes. Here’s a quick summary of the changes:
- Unstable release versions will receive a .pre suffix on the version string to indicate their pre-release status. In the x.y.z-n.m.pre format string, the value of n in the dev channel builds will increment each time a new build is created in the master channel.
- Beta releases will be collected post-release in the dev channel as above. With each correction, the value of m increases.
- The stable release versions are packaged as x.y.0. Subsequent fixes will increment the patch number (x.y.1, x.y.2, etc.)
Here are the other significant changes in Google Flutter:
- Support for Android app bundles and 64-bit Android applications. Now Android apps that use native code and use Android 9 Pie will have to provide a 64-bit version. Flutter supports building 64-bit Android apps. The support has been added for creating Android App Bundles for two versions at once starting from version 1.7.
- New widgets. Since Google is switching to the concept of surfaces, instead of the concept of applications, they pay a lot of attention to widgets that present functionality to the user. For example, the new release adds a new slider for ranges.
- Fonts. The new release has improved text handling for iOS. They have made a big upgrade for rich typography support, including different number styles, style sets, etc.
- Increased number of examples from which you can create code. This is a wonderful feature; the code can be used to create a project from the example and immediately do Run. The Flutter team wrote that the number of such examples has increased.
Flutter is a premium development tool from the IT industry leader Google. It is constantly growing and developing, and each release makes it better and better. Definitely, it is worth your attention.