What’s New in Flutter 10 May 2023: Google I/O 2023 and 3.10 Release
Introduction:
Flutter 3.10 brings exciting updates and improvements to the Flutter framework, offering enhanced features for web and mobile development. The release introduces Material 3, which aligns with the latest Material Design specifications. It also includes advancements in graphics, security, performance, and more. This version showcases the efforts of the Flutter community, highlighting their contributions to the platform.
Highlights of Flutter 3.10
Framework:
Material 3: The Material library now matches the latest Material Design spec, featuring new components, updated visuals, and themes. Developers can opt-in to these changes using the useMaterial3 theme flag.
ColorScheme.fromImageProvider(): This feature allows the creation of custom color schemes based on a single “seed” color or an image. It offers flexibility and ensures accessibility.
NavigationBar: The M3 version of BottomNavigationBar provides different colors, highlighting, and elevation. It can be customized using the NavigationBarTheme widget.
NavigationDrawer: This component offers an M3 destination selection widget based on the Drawer widget. It supports scrolling and can be customized with the NavigationDrawerTheme widget.
SearchBar and SearchAnchor: These components provide predictive text for search queries and can be customized using the SearchBarTheme and SearchAnchorTheme widgets.
Secondary Tab Bar: Flutter 3.10 introduces a second tier of tabbed content with the TabBar.secondary widget.
DatePicker, TimePicker, BottomSheet, ListTile, and Drawer: These components have received updates in terms of colors, layout, shape, and small layout changes, enhancing their overall user experience.
TextField Updates: The M3 version of TextField widgets now support native gestures, including double-clicking, triple-clicking, and dragging for text selection.
Flutter supports SLSA level 1: Flutter Framework now complies with Supply Chain Levels for Software Artifacts (SLSA) Level 1, implementing security features such as scripted build processes, multi-party approval, and provenance.
Web:
Improved load times: Flutter 3.10 reduces file size for icon fonts and optimizes CanvasKit, resulting in faster load times for Flutter web apps.
Element embedding: Flutter web apps can now be served from a specific element in a page, providing more flexibility in app layout.
Shader support: Web apps can leverage Flutter’s fragment shader support, enhancing visual effects and rendering capabilities.
Engine:
Impeller: With over 250 commits in this release, Impeller becomes the default renderer on iOS. It offers improved performance, reduced memory footprint, and faster delivery of popular feature requests.
Performance improvements: Flutter 3.10 introduces various performance enhancements, eliminating jank, reducing iOS startup latency, optimizing size, and stability improvements.
API Improvements:
APNG Decoder: Flutter 3.10 adds support for decoding APNG images, allowing developers to load APNG images using existing image loading APIs.
Image loading API improvements: Director of Engineering tvolkert has made improvements to dart:ui’s image loading APIs, including the addition of the instantiateImageCodecWithSize method for more flexible image loading.
Mobile:
iOS: Flutter 3.10 introduces wireless debugging for Flutter iOS apps, wide gamut image support, spellcheck support, adaptive checkbox and radio widgets, and refining Cupertino animations, transitions, and colors.
Android: Preliminary support for CameraX has been added to the Flutter Camera plugin, providing enhanced camera functionality for Android apps. Developers can opt-in to using the CameraX implementation.
DevTools:
DevTools, the suite of performance and debugging tools for Dart and Flutter, has been updated with a Material 3 UI, improved evaluations for running apps in debug mode, and an embedded Perfetto trace viewer for better performance analysis.
Conclusion:
Flutter 3.10 brings an array of exciting updates, improvements, and new features to the Flutter framework, empowering developers to create stunning and performant web and mobile apps. With Material 3 integration, enhanced graphics, better security compliance, improved performance, and various API enhancements, Flutter continues to evolve and provide an exceptional development experience. Flutter 3.10 demonstrates the dedication of the Flutter community and the commitment to making Flutter a leading choice for cross-platform app development.