{"id":9293,"date":"2024-05-23T11:06:52","date_gmt":"2024-05-23T11:06:52","guid":{"rendered":"https:\/\/dianapps.com\/blog\/?p=9293"},"modified":"2024-05-24T08:39:49","modified_gmt":"2024-05-24T08:39:49","slug":"whats-new-in-flutter-3-22","status":"publish","type":"post","link":"https:\/\/dianapps.com\/blog\/whats-new-in-flutter-3-22\/","title":{"rendered":"What\u2019s New In Flutter 3.22"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Just when the news started spreading about Flutter\u2019s extermination, Google I\/O flashed the release of its brand-new update\u2013 The Futter 3.22, shutting the mouth of the people rolling out misinformation about the framework.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In this new version of the Flutter framework, you will see the stable channel of WebAssebly, a delightful Vulkan backend feature for Android impeller, more magnificent graphics, and a major boost in performance, Flutter 3.22 version unfolds many exciting amendments to 2024 that is turning the future of Flutter bright.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Let\u2019s go through the top updates from the Flutter 3.22 version!\u00a0<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Top-Updates-From-The-Flutter-322-Release\"><\/span><span style=\"font-weight: 400;\">Top Updates From The Flutter 3.22 Release<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"1-WebAssembly\"><\/span><span style=\"font-weight: 400;\">1. WebAssembly<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Wasm is now available on the stable channel and offers notable performance gains with the release of Flutter 3.22. With Chrome running on an M1 MacBook for our internal benchmarks, the Wonderous app&#8217;s frame rendering time decreased by a factor of two on average and three in the worst situations.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">These improvements are critical for apps that require a steady frame rate, such as those with animations and sophisticated transitions. Wasm facilitates smoother animations and transitions by lowering performance bottlenecks. Check out our Flutter Wasm guide and our Dart Wasm documentation to get started integrating Wasm with your Flutter web apps. Check out the <\/span><a href=\"https:\/\/medium.com\/flutter\/io24-5e211f708a37\"><span style=\"font-weight: 400;\">Flutter at Google I\/O blog article<\/span><\/a><span style=\"font-weight: 400;\"> for the whole announcement.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"2-Flutter-Engine\"><\/span><span style=\"font-weight: 400;\">2. Flutter Engine<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">The rendering engine that drives your Flutter apps, Impeller, has seen major improvements as of Flutter 3.22. Highlights include ongoing refinements for blur effects and complicated path rendering, a new experimental API for testing with Impeller, and the completion of the Vulkan backend on Android for better performance and smoother visuals. We&#8217;re dedicated to improving Impeller&#8217;s quality and performance following our roadmap, which includes finishing the iOS to Impeller migration and extending Android support.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Impeller\"><\/span><span style=\"font-weight: 400;\">Impeller<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>\n<h4><span class=\"ez-toc-section\" id=\"Android-Vulkan-backend-feature-completed\"><\/span><strong>Android Vulkan backend feature completed<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Impeller&#8217;s Vulkan backend for Android is a feature complete with this version. The team has been working extremely hard over the last several months to implement all blur styles, support for custom fragment shaders using the FragmentProgram API, fast advanced blends, and PlatformView compatibility (although with a little API migration).<\/span><\/p>\n<ul>\n<li>\n<h4><span class=\"ez-toc-section\" id=\"Android-sneak-peek\"><\/span><strong>Android sneak peek<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">After releasing updates to the OpenGL backend of Impeller in the <\/span><a href=\"https:\/\/dianapps.com\/blog\/whats-in-the-flutter-3-19-version-features-more\/\"><span style=\"font-weight: 400;\">3.19 stable release<\/span><\/a><span style=\"font-weight: 400;\">, we extended an invitation to users to test Impeller on Android devices with and without Vulkan support. We have determined to concentrate our efforts on getting the Vulkan backend production-ready first, having over the previous several months assessed the OpenGL backend&#8217;s performance and estimated the amount of work still to be done on it.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Shader compilation jank is resolved by the impeller. Furthermore, it beats the traditional renderer in our benchmarks for average, 90th, and 99th percentile frame times. As a result, we think the Vulkan backend&#8217;s Android performance is adequate.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">When available, a program that chooses to use Impeller will use the Vulkan backend, as of this release (3.22). This will be set as the default in a later edition. If an app chooses to use Impeller and is running on a device that isn&#8217;t compatible with Vulkan, Flutter will automatically revert to utilizing OpenGL ES with Skia. You don&#8217;t need to do anything. This fallback will also use the OpenGL ES Impeller backend when we think it&#8217;s ready for production use.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">While the 3.22 stable cycle of the Impeller preview is still available for Android, we ask Flutter developers to update to the most recent stable version and report any problems regarding any difficulties that arise when using Impeller.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">To guarantee that Impeller succeeds on Android and that we can with confidence make it the default renderer in a release later this year, feedback at this point is crucial. There is a wide range of hardware available for Android. Because of this, the most beneficial comments on Impeller should provide comprehensive details about the particular device and Android version that the problems were occurring.<\/span><\/p>\n<ul>\n<li>\n<h4><span class=\"ez-toc-section\" id=\"Blur-performance-enhancements\"><\/span><strong>Blur performance enhancements<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Impeller has redesigned Blur for both iOS and Android. Specifically, the new method\u2014which is comparable to Skia&#8217;s\u2014cuts blurring&#8217; CPU and GPU times in half in benchmarks.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The graph below displays GPU frame timings in milliseconds for an iPhone 11 device in a pathological test designed to emphasize blur performance. It also displays worst-case, 99%-ile, 90%-ile, and average frame rasterization durations. The cost of backdrop filter blurs on CPU and GPU has been almost reduced since Impeller&#8217;s blur was rewritten.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">As would be shown in usual apps, this improvement&#8217;s magnitude also applies to non-pathological circumstances.<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-9299 size-large\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image5-2-1024x603.png\" alt=\"image5\" width=\"1024\" height=\"603\" srcset=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image5-2-1024x603.png 1024w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image5-2-768x452.png 768w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image5-2-640x377.png 640w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image5-2-400x236.png 400w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">The Stencil-then-Cover method outlined in the OpenGL Redbook chapter &#8220;Drawing Filled, Concave Polygons Using the Stencil Buffer&#8221; is now the basis for Stencil-then-Cover Impeller on both iOS and Android platforms. In GitHub issue #123671, team members talked further about this strategy as it relates to Flutter.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">With this method, the problem of the raster thread consuming too much CPU time computing tessellations for intricate paths\u2014like SVGs and Lottie animations\u2014is resolved. Following the modification, for frames with complicated routes, the total frame time (UI thread on the CPU + raster thread on the CPU + GPU work) is significantly reduced. Users will see that complicated routes, such as Lottie animations, render more smoothly and consume less CPU power and slightly higher GPU utilization.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Even though these advancements are encouraging, more work has to be done. We are aware that polyline creation is still a significant aspect of CPU profiles, among other opportunities, and we want to look into moving this work to the GPU as well.<\/span><\/p>\n<ul>\n<li>\n<h4><span class=\"ez-toc-section\" id=\"New-API\"><\/span><strong>New API<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Flutter test now takes the &#8211;enable-impeller flag, which runs Impeller on the Vulkan backend, even if it&#8217;s still experimental.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"3-Framework\"><\/span><span style=\"font-weight: 400;\">3. Framework<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li><strong>Attributes of a widget state<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">To make MaterialState available to Cupertino, the main Flutter framework, and package developers, it has been relocated outside of the Material library and renamed WidgetState. See the migration guide for further details on how to make the switch to the new WidgetState.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Also Read: <\/span><a href=\"https:\/\/dianapps.com\/blog\/top-10-widgets-in-the-flutter-widget-catalog-every-app-developer-should-know\/\"><span style=\"font-weight: 400;\">Top 10 widgets in the Flutter Widget Catalog Every app developer should know<\/span><\/a><\/p>\n<ul>\n<li><strong>Adjustable view size<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Improvements to dynamic view scaling help developers create responsive layouts that have improved user interface flexibility across a range of screen sizes.<\/span><\/p>\n<ul>\n<li><strong>Enhanced validation of forms<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">SharbelOkzan, a community member of Flutter, has contributed to Flutter 3.22 by providing more configurable form validation techniques that let developers design more robust user input processing, improving security and usability.<\/span><\/p>\n<ul>\n<li><strong>2D API Covariants<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">For sophisticated animations and games, it is crucial to streamline development processes and improve performance by decreasing the requirement for type casts in 2D graphics APIs.<\/span><\/p>\n<ul>\n<li><strong>Bundling assets based on flavor<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Developers may now set up particular components to only be packaged when creating for a certain flavor by utilizing the flavors functionality. See Conditionally bundling assets based on flavor for further details.<\/span><\/p>\n<ul>\n<li><strong>Converting assets using Dart packages<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Now, users may build up Dart <\/span><a href=\"https:\/\/dianapps.com\/blog\/top-10-flutter-packages-that-speed-up-your-app-development\/\"><span style=\"font-weight: 400;\">Flutter packages<\/span><\/a><span style=\"font-weight: 400;\"> to change the assets of their apps as they are wrapped. See Transforming assets at build time for further details.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"4-Android\"><\/span><span style=\"font-weight: 400;\">4. Android<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>\n<h4><span class=\"ez-toc-section\" id=\"Deep-linking\"><\/span><strong>Deep linking<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Your Flutter app&#8217;s user experience may be greatly enhanced by deep links, which serve as convenient shortcuts that lead users to certain information inside the app, increase engagement, and increase revenue. Although App Links for Android and Universal Links for iOS are very safe and easy to use, they can be a little difficult to set up.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We included a deep link validator tool in DevTools to help verifying the web settings of Android apps in the most recent stable release of Flutter. We&#8217;ve included a new set of capabilities in this edition to assist with verifying settings in your Android manifest files.<\/span><\/p>\n<ul>\n<li>\n<h4><span class=\"ez-toc-section\" id=\"Anticipatory-reversal-motion\"><\/span><strong>Anticipatory reversal motion<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">With<\/span> <a href=\"https:\/\/dianapps.com\/flutter-app-development\"><b>Flutter app development services<\/b><\/a><span style=\"font-weight: 400;\">, users may now preview the previous route or even the prior app when executing a back motion. This functionality is part of Android&#8217;s future predictive back initiative. On Android devices, this is still hidden behind a feature flag, but GitHub has instructions on how to give it a try.<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-9306 size-full\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image7.gif\" alt=\"image7\" width=\"400\" height=\"888\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-9308 size-full\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image4-min.gif\" alt=\"image4-min\" width=\"400\" height=\"894\" \/><\/p>\n<ul>\n<li><strong>Version requirements for Gradle, AGP, Java, and Kotlin are enforced by the Flutter tool<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">With this release, the Flutter tool establishes guidelines for the Gradle, Java, Kotlin, and Android Gradle Plugin (AGP) versions it supports. At first, the program just offers alerts.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The following version ranges are currently supported:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Gradle: 7.0.2 and higher are fully supported; if not, provide a warning.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">AGP: 7.0.0 and higher are fully supported; if not, provide a warning.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Java: Up to now, Java 11 is fully supported; if not, alert users<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Kotlin: 1.5.0 to the present is fully supported; if not, alert users<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">These warnings will become errors in the next major release, however you may override them using the parameter &#8211;android-skip-build-dependency-validation. More generally, before entirely discontinuing support (producing an error) for a particular version of these Dependencies, the tool issues a warning for at least one release.<\/span><\/p>\n<ul>\n<li>\n<h4><span class=\"ez-toc-section\" id=\"Gradle-Groovy-DSL-for-use-in-Gradle-build-scripts-for-Android\"><\/span><strong>Gradle Groovy DSL for use in Gradle build scripts for Android<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Gradle Kotlin DSL is now supported in Flutter, offering an alternative to the conventional. With features like auto-completion, instant access to documentation, source navigation, and context-aware refactoring, this support makes code editing easier.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The GitHub user bartekpacia provided this early assistance. To take advantage of these advantages, developers may now opt to rewrite their Gradle build scripts in Kotlin; however, at this time, utilizing Flutter Create does not let developers pick Kotlin over Groovy.<\/span><\/p>\n<ul>\n<li>\n<h4><span class=\"ez-toc-section\" id=\"Platform-views-enhancements\"><\/span><strong>Platform views enhancements<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Attention to all creators of Flutter apps! We have some significant news if you&#8217;re using Flutter to create apps that depend on native Android components (such as maps, web views, or certain UI elements).<\/span><\/p>\n<p><a href=\"https:\/\/dianapps.com\/blog\/everything-about-android-14-upside-down-cake-rolling-out-soon\/\"><span style=\"font-weight: 400;\">Android 14 <\/span><\/a><span style=\"font-weight: 400;\">has a problem that may prevent apps developed with previous Flutter versions from functioning correctly on devices running this latest Android version.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This problem is resolved in Flutter 3.22, which also enhances the functionality of these native Android app components. Thus, make sure to rebuild and publish your app with Flutter 3.22 to guarantee that it functions flawlessly on all Android devices.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Additionally, this update contains internal enhancements to improve platform perspectives on Android&#8217;s general dependability and performance.<\/span><\/p>\n<ul>\n<li>\n<h4><span class=\"ez-toc-section\" id=\"KitKat-support-is-ending\"><\/span><strong>KitKat support is ending<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Lollipop (API 21) is currently the minimum Android version that Flutter supports. With the stable version of 3.22, Flutter will no longer function on Android KitKat (API 19)-powered smartphones.\u00a0<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"5-iOS\"><\/span><span style=\"font-weight: 400;\">5. iOS<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li><strong>Performance of the platform view<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">We are aware that many Flutter developers have had issues with platform view performance on iOS. When employing platform views, this has been particularly apparent in scroll views.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Recent changes significantly enhance circumstances such as inserting several inline adverts within an article, directly addressing these problems. Here are a few significant enhancements to our benchmark:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">GPU utilization has been cut by 50%, which should result in a smoother user experience and decreased power consumption.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Better frame rendering: There has been a 33% reduction in average frame render times, or 1.66 ms.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Reduced jank: The worst-case frame render durations were slashed by 21%, or 3.8 ms.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">If you have previously had issues with performance while utilizing various platform views (such as advertisements, maps, etc.) within scrolling views, these adjustments may result in a scrolling experience that is more responsive and fluid. Kindly test it out and report back to us on your thoughts.<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-9304 size-large\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image1-5-1024x423.png\" alt=\"\" width=\"1024\" height=\"423\" srcset=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image1-5-1024x423.png 1024w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image1-5-768x317.png 768w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image1-5-640x264.png 640w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image1-5-400x165.png 400w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-9305 size-large\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image8-3-1024x631.png\" alt=\"image8\" width=\"1024\" height=\"631\" srcset=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image8-3-1024x631.png 1024w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image8-3-768x473.png 768w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image8-3-640x394.png 640w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image8-3-400x247.png 400w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"6-Ecosystem\"><\/span><span style=\"font-weight: 400;\">6. Ecosystem<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>\n<h4><span class=\"ez-toc-section\" id=\"Preview-release-of-Vertex-AI-for-Firebase-Dart-SDK\"><\/span><strong>Preview release of Vertex AI for Firebase Dart SDK<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">The Dart SDK is included in the Vertex AI for Firebase offering, which is now available for public preview. With production, performance, and enterprise scalability in mind, this allows you to leverage the Gemini API to develop generative AI capabilities for your Dart or Flutter application. Firebase App Check, which is integrated with the SDK, secures your API requests and defends your backend infrastructure from dangerous attacks like phishing, billing fraud, and app impersonation.<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-9302 size-large\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image6-3-1024x276.png\" alt=\"image6\" width=\"1024\" height=\"276\" srcset=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image6-3-1024x276.png 1024w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image6-3-768x207.png 768w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image6-3-640x172.png 640w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image6-3-400x108.png 400w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">The Google AI Dart SDK is still accessible and should only be used for experimentation. Google AI offers pay-as-you-go pricing and free access (where accessible and within restrictions). Check out the migration instructions if you have been using the Google AI Dart SDK for prototyping and are prepared to switch to Vertex AI for Firebase.<\/span><\/p>\n<ul>\n<li>\n<h4><span class=\"ez-toc-section\" id=\"DevTools-Updates\"><\/span><strong>DevTools Updates<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">DevTools, the collection of performance and debugging tools for Dart and Flutter, is still being refined. Performance gains, general refinement, and new features like sophisticated filtering, the ability to import and export memory snapshots, and the inclusion of CPU samples in the timeline are all included in this edition.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The devtools_extensions and devtools_app_shared packages, which assist DevTools extension writers, also included some noteworthy updates. We have included the ability to connect an extension to the new Dart Tooling Daemon (DTD). This enables DevTools extensions to communicate with the development project using a simple file system API and to access public methods registered by other DTD clients, like an IDE.<\/span><\/p>\n<ul>\n<li>\n<h4><span class=\"ez-toc-section\" id=\"Flutters-Google-Mobile-Ads-SDK\"><\/span><strong>Flutter&#8217;s Google Mobile Ads SDK<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">We have some great news for those of you using ads to monetize your Flutter apps. Version 5.0.1 of Google Mobile Ads for Flutter is a significant upgrade that was just published!<\/span><\/p>\n<ul>\n<li>\n<h4><span class=\"ez-toc-section\" id=\"Improved-User-Messaging-Platform-UMP-SDK-support\"><\/span><strong>Improved User Messaging Platform (UMP) SDK support:\u00a0<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">The most recent APIs from the iOS UMP SDK version 2.4.0 and Android UMP SDK version 2.2.0 are now supported by the upgrade. To comply with privacy standards and facilitate the process of obtaining user consent for tailored adverts, you must utilize the UMP SDK. Several new APIs are included in this edition to streamline the consent-gathering procedure.<\/span><\/p>\n<ul>\n<li>\n<h4><span class=\"ez-toc-section\" id=\"Increased-mediation-partners\"><\/span><strong>Increased mediation partners:\u00a0<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">By providing connections with well-known ad partners like Unity, Meta, AppLovin, Iron Source. And Mintegral, Pangle, DT Exchange, InMobi, and Liftoff. Flutter has increased your opportunities for ad monetization. With more mediation choices and easier deployment, you can now optimize your app income.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Try out these new functionalities in your Flutter apps. And let us know about any more mediation partners you would want to have supported by Flutter. We value your opinions greatly and will keep improving the Google Mobile Ads SDK for Flutter.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"7-Revolutionary-Modifications-and-Revisions\"><\/span><span style=\"font-weight: 400;\">7. Revolutionary Modifications and Revisions<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li><strong>V1 Android embedding removal<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Version one of the Android embedding is now being deleted. Most applications won&#8217;t likely be impacted by this, since<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">For many years, version two has been the norm.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">If the flag ignore-deprecation is not expressly overridden, the Flutter tool would already prevent the creation of version one applications.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">This version fully disables Flutter tool support for v1 applications. Overriding is no longer possible.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Please take note, plugin authors: a migration document was created for you at https:\/\/docs.flutter.dev\/release\/breaking-changes\/plugin-api-migration when the v1 android embedding was first deprecated. It was advised that plugin writers maintain support for apps employing the v1 embedding as part of this migration by including a method with the signature into their *Plugin.java files.<\/span><\/p>\n<p><b><i>public static void registerWith(@NonNull io.flutter.plugin.common.PluginRegistry.Registrar registrar)<\/i><\/b><\/p>\n<p><span style=\"font-weight: 400;\">Plugins that have a method with this signature will no longer compile. When we completely remove the v1 Android embedding in the next version. (because it references a type from the v1 Android embedding).<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Since this update has damaged apps that use the v1 embedding, it is presently useless. To prevent issues with next Flutter versions. We advise plugin developers to release new versions of their plugins as soon as possible. Removing the v1 code. See PR 6494, which eliminated the Flutter team&#8217;s plugins, as an illustration.<\/span><\/p>\n<ul>\n<li><strong>Removing deprecations in 3.22<\/strong><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Deprecated APIs that expired after the release of v3.19. is one of the breaking changes in this release. See the deprecation guide for this version for a list of all impacted APIs, further background, and migration advice. Numerous of these, including the IDE&#8217;s rapid fixes, are supported by Flutter Fix. Applying and evaluating bulk patches may be done with the Dart Fix command-line tool.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Final-Thoughts\"><\/span><span style=\"font-weight: 400;\">Final Thoughts<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">A slew of innovative features have been added to Flutter 3.22. With the goal of improving app speed and development experience. With technologies like the Google Mobile Ads SDK, Gradle Kotlin DSL support, and Vertex AI. Firebase Dart SDK developers can create creative and effective apps.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Moreover, better animations, an enhanced user experience, and higher development productivity are facilitated by the Impeller rendering engine. The Vulkan backend, and other improvements. With these improvements, Flutter keeps reaffirming its standing as the top framework for creating cross-platform applications.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0Examine these top 12 features and see directly how they transform user experience, performance, and app development.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Just when the news started spreading about Flutter\u2019s extermination, Google I\/O flashed the release of its brand-new update\u2013 The Futter 3.22, shutting the mouth of the people rolling out misinformation about the framework.\u00a0 In this new version of the Flutter framework, you will see the stable channel of WebAssebly, a delightful Vulkan backend feature for [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":9298,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_wp_applaud_exclude":false,"footnotes":""},"categories":[3],"tags":[649,58,648],"class_list":["post-9293","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-app-development","tag-flutter-3-22","tag-flutter-app-development","tag-new-in-flutter-3-22"],"featured_image_src":{"landsacpe":["https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image2-4-1140x445.png",1140,445,true],"list":["https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image2-4-463x348.png",463,348,true],"medium":["https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image2-4-300x169.png",300,169,true],"full":["https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image2-4.png",1536,864,false]},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.12 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What\u2019s New In Flutter 3.22<\/title>\n<meta name=\"description\" content=\"Google I\/O flashed the release of its brand-new update\u2013 The Futter 3.22. Read all the top updates from the Flutter 3.22 version.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dianapps.com\/blog\/whats-new-in-flutter-3-22\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What\u2019s New In Flutter 3.22\" \/>\n<meta property=\"og:description\" content=\"Google I\/O flashed the release of its brand-new update\u2013 The Futter 3.22. Read all the top updates from the Flutter 3.22 version.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dianapps.com\/blog\/whats-new-in-flutter-3-22\/\" \/>\n<meta property=\"og:site_name\" content=\"Learn About Digital Transformation &amp; Development | DianApps Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-05-23T11:06:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-24T08:39:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image2-4.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"864\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Harshita Sharma\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Harshita Sharma\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"What\u2019s New In Flutter 3.22","description":"Google I\/O flashed the release of its brand-new update\u2013 The Futter 3.22. Read all the top updates from the Flutter 3.22 version.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dianapps.com\/blog\/whats-new-in-flutter-3-22\/","og_locale":"en_US","og_type":"article","og_title":"What\u2019s New In Flutter 3.22","og_description":"Google I\/O flashed the release of its brand-new update\u2013 The Futter 3.22. Read all the top updates from the Flutter 3.22 version.","og_url":"https:\/\/dianapps.com\/blog\/whats-new-in-flutter-3-22\/","og_site_name":"Learn About Digital Transformation &amp; Development | DianApps Blog","article_published_time":"2024-05-23T11:06:52+00:00","article_modified_time":"2024-05-24T08:39:49+00:00","og_image":[{"width":1536,"height":864,"url":"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/05\/image2-4.png","type":"image\/png"}],"author":"Harshita Sharma","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Harshita Sharma","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/dianapps.com\/blog\/whats-new-in-flutter-3-22\/","url":"https:\/\/dianapps.com\/blog\/whats-new-in-flutter-3-22\/","name":"What\u2019s New In Flutter 3.22","isPartOf":{"@id":"https:\/\/dianapps.com\/blog\/#website"},"datePublished":"2024-05-23T11:06:52+00:00","dateModified":"2024-05-24T08:39:49+00:00","author":{"@id":"https:\/\/dianapps.com\/blog\/#\/schema\/person\/6672b5142fe10cc5379a72656c884045"},"description":"Google I\/O flashed the release of its brand-new update\u2013 The Futter 3.22. Read all the top updates from the Flutter 3.22 version.","breadcrumb":{"@id":"https:\/\/dianapps.com\/blog\/whats-new-in-flutter-3-22\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dianapps.com\/blog\/whats-new-in-flutter-3-22\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/dianapps.com\/blog\/whats-new-in-flutter-3-22\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dianapps.com\/blog\/"},{"@type":"ListItem","position":2,"name":"What\u2019s New In Flutter 3.22"}]},{"@type":"WebSite","@id":"https:\/\/dianapps.com\/blog\/#website","url":"https:\/\/dianapps.com\/blog\/","name":"Learn About Digital Transformation &amp; Development | DianApps Blog","description":"Dianapps","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dianapps.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/dianapps.com\/blog\/#\/schema\/person\/6672b5142fe10cc5379a72656c884045","name":"Harshita Sharma","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dianapps.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2025\/04\/unnamed-96x96.png","contentUrl":"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2025\/04\/unnamed-96x96.png","caption":"Harshita Sharma"},"description":"A competent and enthusiastic writer, having excellent persuasive skills in the tech, marketing, and event industry. With vast knowledge about the latest industry trends, she is familiar with creating engaging content gigs.","sameAs":["https:\/\/www.linkedin.com\/in\/harshita-sharma-958662198"],"url":"https:\/\/dianapps.com\/blog\/author\/harshita\/"}]}},"_links":{"self":[{"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/posts\/9293","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/comments?post=9293"}],"version-history":[{"count":9,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/posts\/9293\/revisions"}],"predecessor-version":[{"id":9309,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/posts\/9293\/revisions\/9309"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/media\/9298"}],"wp:attachment":[{"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/media?parent=9293"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/categories?post=9293"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/tags?post=9293"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}