Upgrade to Pro — share decks privately, control downloads, hide ads and more …

What's new in Flutter (Google I/O Extended Bangkok 22)

What's new in Flutter (Google I/O Extended Bangkok 22)

Google I/O Extended Bangkok 2022

More Decks by Kajornsak Peerapathananont

Other Decks in Technology

Transcript

  1. What’s new in Flutter #Flutter Senior Software Engineer - Agoda

    @kajornsak_pp Kajornsak Peerapathananont - Ben
  2. Stable in 2.10 Windows 01 Stable in 3.0 macOS 02

    Stable in 3.0 Linux 03 Desktop Flutter desktop is production-ready on all platforms - Rendering ✅ - Input & Interaction ✅ - A11y & I18n ✅ - Platform integration✅
  3. DisplayFeature enum DisplayFeatureType { /// [DisplayFeature] type is new and

    not yet known to Flutter. unknown, /// A fold in the flexible screen without a physical gap. /// /// The bounds for this display feature type indicate where the display makes a crease. fold, /// A physical separation with a hinge that allows two display panels to fold. hinge, /// A non-displaying area of the screen, usually housing cameras or sensors. cutout, }
  4. iOS

  5. 32-bit sunsetting 🌄 Goodbye iOS 9 and iOS 10 and

    32-bit devices - iPhone 4S - iPhone 5 - iPhone 5C - iPad 2nd Gen - iPad 3nd Gen - iPad 4nd Gen [RFC] Sunsetting plan : http://flutter.dev/go/rfc-32-bit-ios-unsupported
  6. Impeller https://github.com/flutter/engine/tree/main/impeller Experimental rendering runtime - Predictable performance - Portable

    - Metal & Vulkan support - Available on iOS (not production-ready) - `flutter run ios –enable-impeller` - FLTEnableImpeller
  7. Gradle Support Gradle 7.4 with AGP 7.1.2 Performance - Android

    view (platform view) now composed asynchronously - Better performance of google_mobile_ads
  8. Image decoding Flutter web now uses ImageDecoder API - 2x

    faster on Image decoding - Less jank Web lifecycles - More flexibility for bootstrapping - Better Lighthouse analysis https://docs.flutter.dev/development/platform-integration/web/initialization
  9. index.html <html> <head> <!-- ... --> <script src="flutter.js" defer></script> </head>

    <body> <div id="loading"></div> <script> window.addEventListener('load', function(ev) { var loading = document.querySelector('#loading'); loading.textContent = "Loading entrypoint..."; _flutter.loader.loadEntrypoint({ serviceWorker: { serviceWorkerVersion: serviceWorkerVersion, } }).then(function(engineInitializer) { loading.textContent = "Initializing engine..."; return engineInitializer.initializeEngine(); }).then(function(appRunner) { loading.textContent = "Running app..."; return appRunner.runApp(); }); }); </script> </body> </html>
  10. Lint 2.0 Flutter 3 apps will use lint 2.0 by

    default - $ dart fix –apply [RFC] Sunsetting plan : http://flutter.dev/go/rfc-32-bit-ios-unsupported
  11. Games Template for creating games with Flutter - Sound -

    Music - Main menu - Settings - Ads - In-app purchase - Games services - Crash reporting https://github.com/flutter/samples/tree/master/game_template