$30 off During Our Annual Pro Sale. View Details »

March Flutter Meetup - Flutter updates

GDG Montreal
March 14, 2023
21

March Flutter Meetup - Flutter updates

GDG Montreal

March 14, 2023
Tweet

Transcript

  1. Flutter Updates
    Jhin Lee
    Full-Stack Developer
    @Unity

    View Slide

  2. 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

    View Slide

  3. 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

    View Slide

  4. 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

    View Slide

  5. 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

    View Slide

  6. Records and Patterns (Swap)
    int a = 1;
    int b = 2;
    (a, b) = (b, a);
    // Now a = 2, b = 1
    Demo

    View Slide

  7. 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 args) {
    // return multiple values
    final (firstName, lastName) = getName();
    print('Name: $firstName $lastName');
    }
    Demo

    View Slide

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

    View Slide

  9. 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

    View Slide

  10. 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

    View Slide