Header image for blog titled Flutter 3.27 Promotes New Rendering Engine Impeller

Flutter 3.27 Promotes New Rendering Engine Impeller

News

Shahin Sha - 16/01/2025

The latest version of Google's cross-platform UI kit, Flutter 3.27, brings a wealth of changes, including better adherence to Apple's UI Guidelines thanks to a number of improved Cupertino widgets, new features for CarouselView, list rows and columns, ModalRoutes transitions, and so on. Furthermore, the new release makes the Impeller rendering engine the default, with improved performance, instrumentation support, concurrency support, and more.

Cupertino is a collection of widgets that align strictly with Apple's Human Interface Guidelines. Flutter 3.27 updates a few to increase their fidelity, including CupertinoCheckboxCupertinoRadio, and CupertinoSlidingSegmentedControl. It also extends CupertinoCheckbox, and CupertinoSwitch to make them more configurable, and brings CupertinoButton on a par with the latest customizability options introduced in iOS 15. Other improvements affect CupertinoActionSheetCupertinoContextMenuCupertinoDatePicker, and CupertinoMagnifier.

On the front of Android-native Material UI, Flutter 3.27 extends CarouselView with CarouselView.weighted, which allows you to define more dynamic layouts using the flexWeights parameter to specify the relative item weight occupied within the carousel view. Additionally, SegmentedButton can be aligned vertically, and a few widgets have been fixed to align better with Material 3 specifications.

Flutter 3.27 also improves ModalRoutes, text selection, and rows and columns spacing. ModalRoutes, which have the peculiarity of blocking interaction with previous routes by occupying the entire navigator area, now enable the exit transition from a route to sync up with the enter transition of the new route, so they play nicely together. Text selection now supports Shift + Click gesture to move the extent of the selection to the clicked position on Linux, macOS, and Windows. Rows and Columns may use a spacing parameter, which makes it easier to offset them from each other.

After over one year in preview, the new Impeller rendering engine has been promoted to default on modern Android devices, replacing the old one, Skia. Skia is still available as an opt-in in case of compatibility issues. Impeller attempts to do a number of tasks at compile times that Skia does at runtime, such as building shaders and reflections and creating pipeline state objects upfront, and improves caching to make performance more predictable. It also improves debug support by labelling textures and buffers and allowing animations to be captured on disk without affecting rendering performance. When necessary, Impeller can distribute single-frame workloads across multiple threads to improve performance.

Sign up to our newsletter

Keep yourself informed with the news and insights from Kodbay. Subscribe to our newsletter and be sure to catch up with what's new in modern tech and innovation.

You accept the Terms & Conditions and Privacy Policy by submitting your request.