Recently during the Google Developer Days Conference in China that was held on September 10, 2019, Flutter 1.9 was released along with the updated Dart 2.5 programming language.h
The major highlights from the conference can be summed into three major points:
- Google has announced Dart 2.5 programming update and a new Flutter 1.9 Version upgrade.
- Dart 2.5 will support calling C code and intelligent code completion.
- Flutter 1.9 will support iOS 13, macOS Catalina, and new Material widgets.
In this blog, I am going to discuss the major pointers in detail for you to understand the highlights and updates in detail!
What’s in store for Dart 2.5 as a programming language?
The latest version of Dart 2.5 comes with these major highlights:
-> Support for Calling C Code straight through Dart using Dart FFI Library:
Developers who have knowledge about low-level programming languages will be excited from this announcement. The event also saw the launch of dart:ffi library, the preview of which allows calling into C code directly from Dart and Flutter.
As a result, any app developed using the programming language and framework would have access to system APIs and libraries written in C for Android NDK and desktop platforms.
Till now, calling C straight from Dart was possible through deep integration into the Dart VM with the help of native extensions. However, Google has arrived with a new mechanism that enables greater performance, better ease of approach and usability.
In the latest update, Dart-C interop will enable the following two cases:
- Calling into a system API supported by C on the host OS.
- The calling into library is supported by C that’s either cross-platform for a single OS.
The new dart:ffi library is now ready and can be tried on a Dart dev channel or Flutter master channel.
-> Leverage Machine Learning for Intelligent Code Completion:
The power of Machine Learning is here to help Flutter and Dart apps with precision. Dart 2.5 brings it with the preview of code completion system which is ML based.
This new system is based on TensorFlow Lite and the open source Dart repositories available on Github. It works by attempting to suggest relevant options.
This is a welcoming change that keeps in mind the list of possible completions in typed programming language. TensorFlow Lite trains a member occurrence model by analyzing the heaps of open source Dart Code Compilations.
Therefore, this model is used to predict the next symbol as the API continues to grow and the developer types.
This preview is a part of the Dart analyzer, which makes the code completion accessible across all editors that support Dart. These include Android Studio, Visual Studio Code, and IntelliJ, too.
-> Constant Expressions and the Likes of it:
Last but not the least, the new version of Dart supports a lot more ways to support constant expressions. Till now, Dart has been supporting the creation of constant variables and values.
However, the support for constant expressions came with limits.
With the new update, there are now new ways to do the same. It will include ways to implement casts for better control flow and collection spread features.
Google is now preparing for the next update with extension methods that would allow non-nullable references by default and has improved the support for concurrency. Rich migration tools for existing code is the tech giant’s latest area of interest and investment.
What’s New in Flutter 1.9?
Flutter is an app development framework which has been running in the league with the competitor’s Facebook React Native.
As it was discussed previously, the new Flutter version 1.9 fully supports iOS 13 and macOS Catalina, and has arrived with more advanced tools, better material widget, and exciting Dart-based features.
The release has been estimated well with the official launch of iOS 13 and was built keeping in mind the latest UI features. Also, Flutter 1.9 has been built for absolute macOS Catalina support including that for Xcode 11.
Flutter App Development has always been in rage and there have been companies who are pioneer in app development in Flutter.
Some of the prominent highlights have been listed below:
-> Flutter For Web:
As mentioned earlier, Google has fused Flutter Web Repository with the main repository. In other terms, we have a unified Flutter Repository which makes it possible to develop applications for desktop, mobile and web using the same codebase.
Now, when flutter developers create a project, the framework would create a web runner using a minimal web/index.html file which bootstraps the web compiled code.
This very file would enable using either Flutter CLI tool or the IDE plugins so developers can run and edit Flutter applications on the web. Although the change is in the initial stage, there is still scope for further advancements.
-> Multiple Language Support:
Flutter has gone all out with this release. It has also added support for 24 languages worldwide, something that was totally missing in the previous versions.
These include Albanian, Afrikaans, Amharic, Azerbaijani, Assamese, Bengali, Basque, Belarusian, Burmese, Gujarati, Georgian, Icelandic, Kyrgyz, Kannada, Lao, Malayalam, Macedonian, Nepali, Oriya, Punjabi, Sinhalese, Telugu, Uzbek, and Zulu.
-> Supporting iOS 13 and macOS Catalina:
Google is wishing to make Flutter complement the Xcode 11 build system. That’s why Flutter 1.9 is ready for iOS 13 and macOS Catalina.
Google has upped the game for end-to-end tooling experience to enable 64-bit support across the toolchain and make platform dependencies simpler.
Apart from this, Flutter 1.9 supports the draggable toolbar of iOS 13 including the long-press, drag from right features along with vibration feedback.
-> Support for New Material Widgets:
Flutter 1.9, has also been the flag bearer for new material design widgets. Material is a leading open-source design system implemented to enable interactive user experiences across the platform. It is comprehensive and flexible at the same time.
In the new version for Flutter, several new widgets have been introduced. For instance, the text and icon widgets have been combined in the ToggleButtons widget to create a set of customizable buttons.
With the ColorFiltered Widget, you can address the color accessibility for color blind people who are among your potent users.
There have been many flutter app coders who will ensure efficiency and transparency while executing and operating codes.
-> Improvements in Toolchain:
With Flutter 1.9, the new projects would default to Swift instead of objective-C for iOS projects and Kotlin instead of Java for Android Projects for the base code. It will eliminate the manual work that has been required for adding packages written within Swift to an application.
Swift 5, being ABI stable, its dynamic libraries will no longer require distribution packages for iOS 12.2 onwards, thus minimizing the size of Swift apps. Also, Kotlin has been the most preferred language for Android projects now.
Thus, with an option to revert to Objective-C or Java, these new toolchain improvements in Flutter 1.9 seems just right.
Additionally, Google is working on improving error messages in Flutter to make them more concise, readable and actionable.
You can refer to Techtimes for such technical updates & reviews.
Google Developers Day 2019 has seen a lot of changes in Flutter and Dart and the developer community is certain to welcome the changes with arms wide open.
A great time is expected for flutter developers who are enthusiastic about the technology to be worked upon. Flutter App Development will see a constant rise after the updates have been released in GDD 2019.