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

And Google said, Let there be Flutter: and there was Flutter

And Google said, Let there be Flutter: and there was Flutter

Presented @ MCE 2018

Eugenio Marletti

June 05, 2018
Tweet

More Decks by Eugenio Marletti

Other Decks in Technology

Transcript

  1. And Google said,
    Let there be Flu!er:
    and there was Flu!er
    Eugenio Marletti
    GDE (Android, Flutter, Kotlin)
    Lead Android Engineer @ Clue

    View Slide

  2. SDK for building high-performance,
    high-fidelity, apps for iOS and Android,
    from a single codebase

    View Slide

  3. BETA

    View Slide

  4. QUIZ TIME!

    View Slide

  5. View Slide

  6. View Slide

  7. View Slide

  8. F A

    View Slide

  9. ?F A?

    View Slide

  10. View Slide

  11. FRAMEWORK
    ENGINE
    CUPERTINO
    WIDGETS
    RENDERING
    DART:UI
    TEXT (BLINK)
    SKIA
    DART
    C++
    MATERIAL

    View Slide

  12. WIDGETS
    WIDGETS
    WIDGETS
    WIDGETS
    WIDGETS
    WIDGETS EVERYWHERE
    WIDGETS EVERYWHERE
    WIDGETS EVERYWHERE
    WIDGETS EVERYWHERE
    WIDGETS EVERYWHERE

    View Slide

  13. View Slide

  14. Stateless
    Stateful

    View Slide

  15. Stateless
    class BoringText extends StatelessWidget {
    @override
    Widget build(BuildContext context) =>
    Text("Hello world")
    }

    View Slide

  16. Stateful
    class _CounterState extends State {
    int _counter = 0;
    void _increment() {
    setState(() {
    ++_counter;
    });
    }
    @override
    Widget build(BuildContext context) =>
    Text("Count: " + _counter)
    }

    View Slide

  17. View Slide

  18. Smoooth (60 fps)
    Performance?

    View Slide

  19. Smoooth (60 fps)
    Performance?

    View Slide

  20. Development experience

    View Slide

  21. $ flutter doctor
    [✓] Flutter (on Mac OS X 10.12.4 16E195, channel unknown)
    • Flutter at /Users/takhion/flutter
    • Framework revision 031e042eee (3 weeks ago), 2017-03-17 15:24:54
    • Engine revision c4edec7417
    • Tools Dart version 1.23.0-dev.9.0
    [✓] Host Executable Compatibility
    • Downloaded executables execute on host
    [✓] Android toolchain - develop for Android devices (Android SDK 25.0.2)
    • Android SDK at /Users/takhion/Android/sdk
    • Platform android-25, build-tools 25.0.2
    • ANDROID_HOME = /Users/takhion/Android/sdk
    • Java binary at: /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/bin/java
    • Java version: Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
    [✓] iOS toolchain - develop for iOS devices (Xcode 8.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 8.2.1, Build version 8C1002
    • ios-deploy 1.9.1
    • CocoaPods version 1.2.0
    [✓] Android Studio (version 2.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Gradle version 2.14.1
    [✓] Connected devices
    • Pixel • FA69N0309825 • android-arm • Android 7.1.1 (API 25)

    View Slide

  22. Full control

    View Slide

  23. $ flutter run
    Launching lib/main.dart on Pixel in debug mode...
    Running 'gradle assembleDebug'...
    Built build/app/outputs/apk/app-debug.apk (21.8MB).
    Uninstalling old version...
    Installing build/app/outputs/apk/app.apk... 6.0s
    Syncing files to device... 2.8s
    ! To hot reload your app on the fly, press "r". To restart the app entirely, press "R".
    The Observatory debugger and profiler is available at: http://127.0.0.1:8106/
    For a more detailed help message, press "h". To quit, press "q".

    View Slide

  24. View Slide

  25. Full control

    View Slide

  26. Full control

    View Slide

  27. I probably won't have any
    more time to talk at this
    point, but just in case:
    here's a placeholder!
    "

    View Slide

  28. Eugenio
    Marle!i
    @workingkills
    bit.ly/let-there-be-flutter

    View Slide