Flutter 3.16 released! Android Impeller preview, Game Toolkit Updates, iOS extensions and more!

Flutter 3.16 released! Android Impeller preview, Game Toolkit Updates, iOS extensions and more!

We now have the new version of Flutter available, Flutter 3.16, and it's packed with cool new stuff like Impeller in preview mode for Android, support for Predictive Back Navigation for Android 14 and Material 3 as the default visual style. Also, you can now use Flutter widgets in some iOS extensions. And for the game devs, there are some sweet updates in the Flutter Games Toolkit. This is the last major update we're getting this year, and it's all about making our development faster and our projects better, so let's see in detail the most notable new features of Flutter 3.16.

🎥
Video version available on YouTube

Impeller in preview mode for Android

The new rendering engine of Flutter, Impeller, is now available in preview mode for Android on the stable channel. This version introduces a Vulkan backend designed to enhance the performance of Flutter apps on Vulkan-capable devices. The update shows significant improvements in frame rasterization times, leading to less jank and higher framerates.

However, Impeller is still not expected to work well on older devices that do not have Vulkan support. The Flutter team is still working on the backend for OpenGL so we will have to wait a little longer to see good performance on these types of devices.

You can now try Impeller on devices that support Vulkan by passing the --enable-impeller flag to the flutter run command or by adding the following section to the project's AndroidManifest.xml under the <application> tag:

<meta-data
  android:name="io.flutter.embedding.android.EnableImpeller"
  android:value="true" />

Besides working on the Vulkan Backend, the Flutter team has been working hard to improve text performance in Impeller for both Android and iOS. They've made changes that help manage text better and reduce slowdowns, especially in apps with a lot of text. This has made these apps smoother and more responsive. Additionally, the team has focused on fixing various issues and enhancing overall quality and stability for users on both platforms. They've been really proactive, addressing a lot of user feedback and making numerous updates to improve the overall experience.

Material 3 is now the default visual style

Starting with the 3.10 release in May 2023, Flutter's Material library has been updated to align with the latest Material Design guidelines. This update includes new components, themes, and refreshed visuals for existing components. Previously, to use these updates, developers had to opt-in by setting a theme flag. But now, with this new release, the Material 3 visual style is the default setting on Flutter apps.

If you prefer the older Material 2 version, you can still opt out of Material 3 by setting the useMaterial3 property in your MaterialApp widget to false. However, it's worth mentioning that Material 2 will eventually be deprecated. Some widgets in Material 3 are completely new implementations, so when upgrading, you might notice changes in your app's UI. To address this, you should manually migrate to the new widgets.

Remember that Flutter also offers a demo application where you can experiment with all the Material 3 components and compare them with the previous version. The look of Material 3 components is mainly defined by the color and text themes set in the app's ThemeData. Developers can create a Material 3 color scheme easily with tools that generate pleasing and accessible color schemes, either from a base color or even from the dominant colors in an image.

Predictive Back Navigation in Android and iOS app extensions

In this latest Flutter update, there are exciting enhancements for both Android and iOS platforms. On the Android side, a significant improvement has been made to the mouse scroll wheel support. Before this update, using a mouse scroll wheel on Android tablets or foldables was a bit clunky, requiring considerable movement for any scrolling action on the screen. Now, Flutter has enhanced this feature, ensuring that scrolling with a mouse feels more natural and matches the scroll speed typical on Android devices.

Another key update for Android is the introduction of predictive back navigation, a feature from Android 14. This feature allows users to use the back gesture on their device to quickly see the home screen behind the current screen. Flutter's integration of this feature brings a more intuitive and consistent user experience, aligning with the latest Android functionalities.

On the iOS front, Flutter has expanded its capabilities to include some iOS app extensions. This means that developers can now use Flutter widgets to design the UI for certain types of iOS app extensions. However, this functionality is not universal across all types of app extensions, as some might have API limitations or memory restrictions.

Exciting news about the Flutter Games Toolkit

Flutter has seen a significant rise in its use for casual game development over the past few years. A large number of games, ranging from simple puzzles to complex arcade games, have been created using Flutter.

To further support game developers, Flutter is now releasing a major update to its Flutter Casual Games Toolkit. This update includes a variety of new resources aimed at helping developers progress from initial concepts to fully launched games. The toolkit now offers more genre-specific templates, such as those for card games and endless runner games, and integrates various services like Play Games Services, in-app purchases, ads, achievements, Crashlytics, and multiplayer support.

New Flutter Favorites packages!

Flutter's community and tools are always growing and changing, and with that, the Flutter Favorite program has been refreshed and updated! This is an exciting time for developers as the Flutter Ecosystem Committee has recently recognized a selection of packages as new Flutter Favorites. These include our beloved flame game engine, the macos_ui package to make your macOS applications look native, and the wonderful riverpod state manager package.

Keep an eye out for future Flutter Favorites as this program continues to spotlight exceptional packages and plugins. If you want to nominate a package or plugin to this program to become a Flutter Favorite you can do so by sending an email to the committee at flutter-committee@googlegroups.com.

What's new in Flutter DevTools

Flutter's DevTools has introduced a new extensions framework that offers several exciting possibilities. Now, package authors can create custom tools for their packages, which will show up directly in DevTools. They can also make use of existing DevTools frameworks and utilities to build powerful tools. For Dart and Flutter developers, this means they'll have access to specialized tools that are tailored to their specific app development needs, based on the app's dependencies. Authors of popular packages like Provider, Drift, and Patrol have started building this ecosystem, and you can use their DevTools extensions right now.

In addition to these extensions, the latest DevTools release brings a bunch of improvements and new features. Highlights include the addition of support for DevTools extensions and a new "Home" screen that offers a summary of your connected app. Other improvements focus on enhancing overall performance, the robustness of hot restarts, text selection and copying behavior, as well as polishing the network profiler response viewer.

Conclusion

These are just a few of the key updates in Flutter version 3.16. With the Material 3 update almost fully implemented, and Impeller showing great performance on iOS, we're now looking forward to seeing how it performs on Android and other platforms. Meanwhile, the Flutter team is continuously working hard, adding new features and making performance enhancements. We will also keep an eye on the latest developments in Flutter's packages and plugin ecosystem.

For more in-depth information on all these updates and more, you can check out the official blog post. Thanks for sticking with this summary to the end, and I hope you have a wonderful rest of your day.

Happy coding :)

Did you find this article valuable?

Support David Serrano by becoming a sponsor. Any amount is appreciated!