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

March Flutter Meetup - Flutter updates

GDG Montreal
March 14, 2023
32

March Flutter Meetup - Flutter updates

GDG Montreal

March 14, 2023
Tweet

Transcript

  1. Speaker - Jhin Lee • Full-Stack Developer @Unity ◦ Golang,

    JS/TS, React.js(Next.js), GCP • Full-Stack Developer @ConsiderBeyond ◦ Firebase + Flutter ◦ https://www.considerbeyond.com • LinkedIn: https://www.linkedin.com/in/leehack
  2. Changelog • Nov 2018 Flutter 1 release ◦ Android /

    iOS • Mar 2021 Flutter 2 release ◦ Web support (stable) ◦ Desktop support (preview) ◦ Sound Null Safety (Dart 2.12) • Feb 2022 Flutter 2.10 release ◦ Windows support (stable) • May 2022 Flutter 3 release ◦ Linux support (stable) ◦ MacOS support (stable) ◦ Material 3 Theme
  3. Current State • Flutter 3.7.7 (Dart 2.19.4) • Fully cross-platform

    ◦ Web ▪ Maybe WebApp(or PWA) but not WebSite ◦ Mobile: iOS, Android ◦ Desktop: Linux, Windows, MacOS • Null-Safety • Material 3 Theme • 700,000+ apps are published
  4. Flutter Forward • Impeller rendering engine ◦ Next-generation rendering engine

    ◦ 3D graphics ◦ Performance improvement: Side-By-Side Demo ◦ Now preview on iOS • Seamless integration (Interoperability) ◦ Web: demo ◦ Mobile ▪ FFIgen is used to generate bindings for C, Objective-C and Swift APIs ▪ JNIgen is used to generate bindings for Java and Kotlin APIs • Dart 3 (alpha) ◦ Records and patterns ◦ Capability controls to classes: `interface`, `base`, `final`, `sealed` • WASM, RISC-V support
  5. Records and Patterns (Swap) int a = 1; int b

    = 2; (a, b) = (b, a); // Now a = 2, b = 1 Demo
  6. Records and Patterns (Return multiple values) (String firstName, String lastName)

    getName() { final user = User(firstName: 'Jhin', lastName: 'Lee'); return (user.firstName, user.lastName); } void main(List<String> args) { // return multiple values final (firstName, lastName) = getName(); print('Name: $firstName $lastName'); } Demo
  7. Records and Patterns (Destructuring) User getUser() { final user =

    User(firstName: 'Jhin', lastName: 'Lee'); return user; } void main(List<String> args) { final User(firstName:first, lastName:last) = getUser(); print('$first is a $last.'); } Demo
  8. Records and Patterns (Destructuring) final users = [ User(firstName: 'user1',

    lastName: '1'), User(firstName: 'user2', lastName: '2'), User(firstName: 'user3', lastName: '3'), ]; for(final User(firstName: first, lastName: last) in users) { print('$first is a $last.'); } Demo
  9. Resources • What’s next for Flutter (Flutter Forward) • What’s

    new in flutter 3.7 • Introducing Dart 3 alpha • Impeller • What’s new - Flutter website • Flutter forward - Youtube playlist