Having painful experiences with NativeScript and a failed proof-of-concept (PoC) React Native, especially on Android, our development and Executive teams are terrified of any further mention of cross-platform mobile frameworks. However, when approaching Flutter, we believe it is NOT yet another cross-platform mobile development framework. And this is not a pure faith, but based on observation and analysis of (1) its technology, (2) the community adoption, and (3) most importantly, the strategy of Google — its original author and backer.
2. About Speaker
● “Sinh”
● 10y+ working w/ European and VN
startups
● People's Choice CTO of the Year
2016 – Nordic Startup Award
Finland
● Engineering Director,
● Flutter advocate
3. About
● Startup, 13 quarters-old
● Quality and compliance platform, powered by AI
● B2B, serving Fortune 100 factories, brands, retailers,
such as (this might not be technically true, just to
illustrate)
4. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
About
5. Agenda
● What is Flutter?
● Isn’t it just YET ANOTHER cross-mobile framework?
○ Tech, Community, Strategy
● Hold on, it’s too good to be true!
6. What is Flutter?
● Open-sourced, made by
● Started as a cross-platform mobile SDK
● Now a SDK ”for building beautiful, natively-compiled
applications for mobile, web, and desktop from a single
codebase.”
○ Also embedded (e.g. Google Home Hub or Raspberry
Pi)
7. What is Flutter?
● Open-sourced, made by
● Started as a cross-platform mobile SDK
● Now a SDK ”for building beautiful, natively-compiled
applications for mobile, web, and desktop from a single
codebase.”
○ Also embedded (e.g. Google Home Hub or Raspberry
Pi)
11. NativeScript & ReactNative (& others)
● At Smarp, I made the wrong choice with
● Coming to , same choice had been made
● For a RISE (our new product), we almost went with
12. NativeScript & ReactNative (& others)
● For a RISE (our new product), we almost went with
but it fails on
○ Android performance, esp. camera
○ dependency management (to eject or not to eject)
○ computer vision and IoT support
→ went with Android (no iOS still)*
*Yeah, I did PoC w/ Xamarin and RoboVM when in Smarp too
15. Tools
● Flutter is not a framework, but an SDK
● debugger, inspector, profiling, stack tracing, FPS
performance overlay, testing framework
○ Android Studio
○ VS Code
22. Rendering engine
● Similar to those game engine Unity
○ We can even write games in
Flutter
● 1st class tablet and responsive
support
● Less reason to “cross the bridge”
● Crossing is easy as well
23. Reactive Declarative UI as Code
● Reactive Declarative UI as code
● Trendy and healthy competition within mobile
development: Jetpack Compose, SwiftUI
24. Reactive Declarative UI as Code
● Together with different compilation modes
○ Debug: JIT Dart VM → subsecond hot reload
○ Production: AOT ARM code → CPU and RAM
optimized
→ Best of both world
→ Great developer experience
25. Technology
Tools + Rendering Engine + UI as code
= Developer experience
3 types of testing instead of 2
● Unit, Instrumentation vs Unit, Widget, Integration
28. Designers
● Heard about Flutter from a designer
○ Flutter is design-centric or even design-first
● Material design announced that Flutter is their first-class
platform.
29. Designers
● Sub-second hot reload + declarative widget composition
→ desired design in record time
● “Live preview” mostly displays static design, while our
designers are also picky about animation design
● Skia → easy to achieve consistent brand-identity design
30. Engineers
● Flutter is THE Fastest Growing Skill Among Software
Engineers¹
● Hirings are booming in around the world²
¹ LinkedIn, March 2019
² Even in VN and BY, but not that I can search in MY, maybe because I was searching in English?
31. Engineers
● Gentle learning curve, esp for ppl w/ background
○ native mobile
○ reactive frontend (RxJS, React)
32. Engineers
● The community is open, modest, respectful to other
technologies
● “The Boring Show”
○ An hour of unedited pair programming by G
engineers, including all dead ends, blunders, runtime
errors, silly typos, edge-case bugs
35. Contributors
● Official Flutter Youtube, Medium, @flutterdev
● MTechViral Youtube, @imthepk
● Flutter Community Medium, @FlutterComm
● r/FlutterDev Reddit and @r_FlutterDev
● Other international English speaking
● Other local/non-English
39. Why Google has incentives?
● Open-sourced, made by
● wants to consolidate their platforms/OS, and
development experience
● “Write once, render everywhere”
○ iOS, Android, Linux, Mac, Windows, Browser,
Embedded
48. What’s the catch
● ObjC < Java < Dart < Swift/Kotlin
○ Null safety, LLVM optimization, tail recursive, “when”,
etc.
● Lack of iOS bitcode → no 🍎⌚️
● No code push / hot update
● 1st party plugins are written ObjC/Java (I wish they were
in Swift/Kotlin)