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 full-size slide

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

    View full-size slide

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

    View full-size slide

  4. WIDGETS
    WIDGETS
    WIDGETS
    WIDGETS
    WIDGETS
    WIDGETS EVERYWHERE
    WIDGETS EVERYWHERE
    WIDGETS EVERYWHERE
    WIDGETS EVERYWHERE
    WIDGETS EVERYWHERE

    View full-size slide

  5. Stateless
    Stateful

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  8. Smoooth (60 fps)
    Performance?

    View full-size slide

  9. Smoooth (60 fps)
    Performance?

    View full-size slide

  10. Development experience

    View full-size slide

  11. $ 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 full-size slide

  12. Full control

    View full-size slide

  13. $ 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 full-size slide

  14. Full control

    View full-size slide

  15. Full control

    View full-size slide

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

    View full-size slide

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

    View full-size slide