Google has released Flutter 3.7, an update to the company’s open source, cross-platform development framework that adds custom menu bar support and previews a new rendering engine for iOS apps. The company also unveiled an alpha preview of Dart 3, a new version of the programming language used with Flutter.
Flutter 3.7 can be used to build menu bars and cascading context menus. Developers can design a Material Design menu providing cascading menu bars or standalone cascading menus triggered by another user interface element. These menus are customizable and menu items can be custom widgets, or developers can use new menu item widgets including MenuItemButton
and SubmenuButton
.
Also with the release, the Impeller rendering engine, positioned to provide for predictable performance, portability, and concurrency support, is ready for preview on iOS on the stable channel. Google expects to make Impeller the default renderer on iOS in a forthcoming stable release. Impeller has been available under the --enable-impeller
flag on iOS and Android.
Flutter allows developers to build compiled, cross-platform mobile, desktop, web, and embedded applications from a single codebase. Dart is the foundation of Flutter, providing the language and runtime powering Flutter apps. With the Dart 3 alpha, introduced January 25, the project’s developers are changing the type system to only support sound null safety. The corresponding breaking changes were made to core libraries.
Also on tap for Dart 3 are the additions of records and patterns, with the goal of making it easier to work with structured data. Leading up to Dart 3, the developers have attempted to make Dart more approachable by moving all terminal developer tools into a unified dart
developer tool. Additional tools changes are eyed.
Dart 3 alpha is available in the Dart dev channel and the Flutter master channel. Installation instructions for Flutter can be found on the Flutter website.
Also in Flutter 3.7:
- The DevTools memory debugging tool has been overhauled. Three new feature tabs, Profile, Trace, and Diff, support all previous memory debugging features. New features include the ability to analyze current memory allocation for an app by class and memory type, to investigate what code paths are allocating memory for a set of classes at runtime, and to diff memory snapshots to understand memory management between two points in time.
- Enhanced support is offered for the Material 3 open source design system, including migration of widgets such as
Badge
,BottomAppBar
,Divider
,Menus
,Slider
, andBanner
. - A Frame Analysis tab in the Performance page offers insights for a selected Flutter frame.
- Scrolling has been improved, with refinement for trackpad interactions, new widgets such as
Scrollbars
, and improved handling for text selection within scrolling contexts. - Memory management has been improved to reduce jank caused by garbage collection pauses.
- Internationalization support has been revamped.