Users can create natively built applications from a single codebase for desktop, web, and mobile platforms using Google’s UI framework Flutter. Version 3.3 of Flutter and Dart, the language used by Flutter, was just released by Google.
Both releases are merely improvements without many noteworthy new features. The impeller is a brand-new rendering engine that is only now available in preview for iOS. Additionally, Google released Wonderous, a new demonstration app for Flutter 3.3 for iOS that makes use of Impeller.
Flutter 3.3’s New Features
Flutter programmes replicate the UI components of the underlying platform rather of using them. A set of iOS UI elements and the cross-platform Material UI are included with Flutter out of the box. Windows, macOS, and Linux UI element sets are available in open-source libraries.
Users may now pick multiple rows of text at once in Flutter web apps, which is how it should operate. In desktop programmes, trackpad gestures perform better.
The pubspec.yaml build file now provides Windows programmes with their version number. Furthermore, iPad apps can utilise handwritten input via Scribble and the Apple Pencil.
IconButton, Chips, and AppBar are three parts of Material 3 that have been upgraded in this edition. The new UI makes it quicker and less memory-intensive to load photos that are part of the app. Method fromAsset() of an ImmutableBuffer Additionally, iOS no longer supports pointer compression, which frees up more memory for a Flutter app’s non-Dart components (such as libraries).
With URL-based declarations, the go router package from the Flutter team makes routing within an app simpler. Asynchronous code can be used with version 4.3. Additionally enhanced are the Flutter DevTools and the extension for Visual Studio Code.
iOS 32-bit devices can no longer run Flutter 3.3. That doesn’t include iPhone models 5C (from 2014) and prior, or iPad devices 2 through 4. (the latter launched in 2012). Additionally, macOS 10.11 (from 2015) and 10.12 (from 2016) will not be compatible with the future Q4/2022 Flutter version.
In its next iOS and iPadOS releases for the fall, Apple removed Bitcode. For this reason, a future version of Flutter will likewise do away with Bitcode support.
Since the beginning, Flutter has relied on Skia as its graphics engine. Among other things, Skia powers Chrome, Firefox, Android, and ChromeOS. Contrarily, Impeller is unique to Flutter and “takes full advantage of contemporary hardware-accelerated graphics APIs like as Metal on iOS and Vulkan on Android.” This makes it possible to create better animations and gets rid of a typical cause of “yank”: stuttering animations and transitions.
The existence of 500,000 Flutter apps was touted as a success signal when the previous update was announced by the Flutter team. This time, the Flutter team claimed that “more than 1,000 new mobile apps employing Flutter are published to the Apple and Google Play stores every day.” Sadly, neither number includes any context, such as performance data from rival platforms.
Dart 2.18’s New Features
In March 2021, Dart added sound null safety, which applies to both applications and libraries. Similar to Swift, but not like Kotlin, which cannot ensure libraries’ null safety.
Only 2% of the top 1,000 libraries have not switched to null safety, while all of the top 250 libraries for Flutter and Dart have. More than 80% of the Flutter programmes running in July 2022 made advantage of sound null safety. Due to this, by the middle of 2023, Dart plans to discontinue supporting Dart versions without null safety.
The HTTP library in Dart is cross-platform. Two platform-specific libraries are offered with experimental support. Cupertino HTTP for iOS and macOS is the first one.
For functions like WiFi-only networking or VPN access, it makes use of NSURLSession from Apple. Building on the well-known Cronet library, the second library is cronet HTTP for Android.
Objective-C and Swift programmes can now communicate with the Dart Foreign Function Interface (FFI) for calling native C APIs on iOS and macOS. Some instances of non-nullable arguments are more easily detected via improved type inference. Asynchronous code is also a little bit smaller and executes a little bit quicker.