Flutter

My take about Flutter 3.24

The Flutter team released version 3.24, which, while not introducing many exciting new features, brought much-needed improvements for the web and iOS.

Flutter 3.24 comes along with some neat improvements
Flutter 3.24 comes along with some neat improvements

iOS and MacOs

Flutter is not very popular among iOS developers, and one of the reasons is the limited availability of Cupertino widgets. In this new release, Flutter announced improvements to the CupertinoActionSheet, CupertinoButton, and CupertinoTextField to make them more closely resemble their native counterparts. However, it still lacks completeness, and for macOS, I always use macos_ui to provide a more native look and feel. The team has promised to improve Cupertino widgets in future releases. In addition to the Cupertino improvements, the Flutter team announced support for Swift Package Manager. To me, this is a significant improvement and will simplify working with iOS. You no longer need to install Ruby and CocoaPods but can instead use the embedded package manager in Xcode. Keep in mind that most Flutter packages still need to migrate to Swift Package Manager, so you may need to wait some time before you can fully switch.

Impeller Engine status update

The move to Impeller was Flutter's solution to fixing the notorious iOS jank and improving performance across various platforms. However, the migration did not come without challenges: many developers experienced issues with text rendering and scrolling. In version 3.24, many of these issues have been addressed, and Impeller now performs better in rendering text weight and spacing. The Flutter team encountered a setback on Android due to a bug in Android 14. The issue was related to APIs that Impeller uses for rendering Platform Views. Because of this, Impeller on Android is still marked as a preview.

Web: improved Flutter embedding

In the latest release, the Flutter team introduced WASM support, making the framework a force to be reckoned with in web development. The team continues to improve Flutter for the web by adding multi-view embedding. This functionality allows developers to integrate multiple Flutter views into an existing web application. Each view can be managed through JavaScript, enabling you to add views to specific HTML elements or remove them as needed. Multi-view embedding also comes with custom initialization data for each view, allowing for personalized configurations and interactive experiences.

Devtools getting better and better

In my opinion, DevTools is where Flutter truly outperforms any other technology. The tooling provides developers with a wealth of information, and in this new release, the team introduced Rebuild Stats. With Rebuild Stats, you can capture information about how many times a widget was built in the app or within a specific Flutter frame. In addition to the rebuild tools, the team made significant improvements to the network profiler, the Flutter deep links tool, and the DevTools extension framework.

Conclusion

To me, Flutter 3.24 is the least exciting release of the year when it comes to flashy new features. However, the team made substantial improvements to platforms that were lagging behind, including macOS, iOS, and web. This gives me confidence that Google is not abandoning the project, especially given their continued work on major initiatives like Impeller.