Key features and updates in Flutter 3.24

Image Source:Somnio Software

Introduction

Welcome to the latest Flutter update! Flutter 3.24 is packed with exciting new features and enhancements to elevate your app development experience. This release highlights the preview of Flutter GPU, which enables advanced graphics and 3D scenes directly in Flutter. Web apps can now embed multiple Flutter views, enhancing your app’s versatility. And finally, they’ve added video ad monetisation support to help you maximise revenue.

In the past few months, the Flutter community has been incredibly active, with 852 framework commits and 615 engine commits. They have 49 new contributors who have helped make this release possible.

So, let’s dive in and discover all the new features and enhancements that the Flutter community has brought to this latest release!

History and Evolution

Origins:

Flutter is an open-source kit for developing software for mobile applications and mobile UI. The same was first released by Google in May 2017 at the conference Google I/O. It was their first attempt at giving a framework to developers to be used in the development of high-performance, natively compiled applications from a single code base. Its origins were in mobile app development for Android and iOS. Flutter immediately caught attention because it uses the Dart programming language, which allows developers to build fast and expressive user interfaces with a reactive architecture. Another feature that impressed, from the very start, was its "hot reload" functionality: the ability to update the application in real time during the development process without having to restart the entire application.

Evolution Over Time:

Just within a pretty short period of its first release, Flutter became a mature cross-platform framework. Already at the end of 2018, the stable version of Flutter 1.0 came out with everything one might need for cross-platform app building. In 2019, Google reported Flutter for Web, which extended the scope of the framework to browsers, followed by desktop platforms (Windows, macOS, and Linux) in 2020.Since then, updates have been focusing on better performance, improvements in developer tooling, and integrations for specific platforms. Flutter 2 appeared in 2021 with the full support of web and desktop; Flutter became fully cross-platform. Another confirmation of multi-platform ambitions with stable support for macOS and Linux was made by the release of Flutter 3 in 2022. Further periods have strengthened Flutter further in its development, perfected its capabilities, improved rendering performance, and offered more integrations within existing ecosystems of platforms, making it a key tool in modern app development.

Key Features

Framework:

New Slivers

This release adds new slivers that can be composed together for dynamic app bar behaviors:

You can use these new slivers to make headers that float, stay pinned, or resize as the user scrolls. These new slivers are similar to the existing SliverPersistentHeader and SliverAppBar slivers, but ave simpler API’s that can be combined for greater effect.

Updates in the Cupertino library

In this release, total of 37 missing cupertino widgets were added and we’ve improved the fidelity of CupertinoActionSheet. Sliding your finger across the action sheet’s buttons now provides haptic feedback. The buttons’ font size and weight now match their native counterparts. We’ve also added new focus properties to CupertinoButton, and you can now customise the colour of a disabled CupertinoTextField.

TreeView

The two_dimensional_scrollables package released the TreeView widget, alongside several companion classes for building performant scrolling trees that can scroll in all directions as the tree grows. The sample app included in the package was also updated with several new examples of using the TableView and TreeView widgets. TreeSliver was also added to the framework for building trees in one dimensional scrolling. The TreeView and TreeSliver APIs match, making it easy to switch between the one that is right for your use case.

CarouselView

This release included the Material Design carousel widget: CarouselView. The CarouselView presents the “Uncontained” layout: a scrollable list of items that scroll to the edge of the container, and the leading and the trailing items can dynamically change size when they are scrolling out of the view and scrolling in the view.

Updates in SelectionArea

Flutter’s SelectionArea now supports more native gestures associated with a triple click using a mouse, and double tapping on a touch device. By default, the SelectionArea and SelectableRegion widgets use these new gestures.

Triple click

  • Triple click + drag: Extends the selection in paragraph blocks.
  • Triple click: Selects the paragraph block at the clicked position.

Double tap

  • Double tap + drag: extends the selection in word blocks (supported on native Android/Fuchsia/iOS, and iOS web).
  • Double tap: selects the word at the tapped position (supported on native Android/Fuchsia/iOS, and Android/Fuchsia web).

Engine:

Impeller

In anticipation of removing the Impeller opt-out on iOS in a stable release coming soon, the team has been hard at work on improvements to Impeller’s performance and fidelity. As one example, a long series of improvements to text rendering greatly increased the performance of emoji scrolling, eliminating jank when scrolling a large collection of emojis, which was a fantastic stress test of Impeller’s text rendering capabilities.

Additionally, by solving a number of issues we have also greatly improved the fidelity of Impeller’s text rendering in this release. In particular, text weight, spacing, and kerning now all match the fidelity of text with the legacy renderer.

Flutter GPU preview

Flutter has introduced a major update for rendering capabilities with the Flutter GPU, available on the main channel. This low-level graphics API allows developers to create custom renderers using Dart code and GLSL shaders without needing any native platform code.

Flutter GPU expands what you can render directly in Flutter, enabling advanced graphics and 3D scenes. It requires the Impeller rendering backend, currently supported on iOS, macOS, and Android. Although in early preview, Flutter GPU aims to eventually support all Flutter platforms.

Web:

Multi-view embedding

Flutter web applications can now leverage multi-view embedding, allowing developers to render content into multiple HTML elements simultaneously. This feature, known as “embedded mode” or “multi-view,” offers flexibility for integrating Flutter views into existing web applications.

Monetization:

Video ad monetization support

We have launched a new Interactive Media Ads (IMA) plugin to support instream video ad monetization on Flutter mobile apps. The new IMA plugin provides new ad monetization opportunities for Flutter apps on top of the existing Google Mobile Ads (GMA) plugin which primarily supports display ad formats.

iOS:

Swift Package Manager initial support

Today, Flutter uses CocoaPods to manage native iOS or macOS dependencies.

Flutter 3.24 adds early support for Swift Package Manager. This brings several benefits, including:

1. Access to the Swift package ecosystem. Flutter plugins will be able to leverage the growing ecosystem of Swift packages!

2. Simplifies Flutter installation. Swift Package Manager is bundled with Xcode. In the future, you won’t need to install Ruby and CocoaPods to use Flutter for Apple’s platforms.

Future Outlook

Google is further stretching the frontiers of cross-platform application development with the release of Flutter 3.24. New features and improvements in this release reflect more than ever that Flutter is still in growth and evolving towards emerging technologies. Optimized web and desktop platforms, more support for new device form factors, and deeper integration with native platform features such as AI, machine learning, and augmented reality would become new realities as Flutter evolves.

Other areas include the expansion of the Flutter ecosystem, more plugins, packages, and community-driven contributions. Google's commitment to regular updates and a thriving community of developers promises that Flutter would not go out of choice for building scalable and high-performance apps in the coming years. As the framework matures, its ability to provide a seamless and unified development experience across a wide range of platforms will continue to grow and blossom and thus transform into a go-to tool for developers looking to build future-proof applications.

Conclusion

This release wouldn’t be possible without countless contributions and unwavering passion. To dive into the specifics of what has been achieved with this release, we invite you to view the release notes and change log for a comprehensive list of additions in Flutter 3.24.Flutter 3.24, alongside Dart 3.5, is now available on the stable channel.

References

[3]
[4]
[5]
[6]
[7]

Contents

Share

Written By

James Mathew

Flutter Developer

Versatile Flutter developer skilled in creating exceptional user experiences for web, mobile applications, and cross-platform development. My proficiency spans the spectrum, ensuring cohesive and polished results across diverse platforms. Crafting seamless and engaging interfaces isn't just a job for me – it's my dedication and passion

Contact Us

We specialize in product development, launching new ventures, and providing Digital Transformation (DX) support. Feel free to contact us to start a conversation.