Flutter forward

Building for native & beyond in Flutter

by Ryan Edge

I build multiplatform applications for Web, Desktop, and Mobile

I ❤️ Flutter and React

What is Flutter?

Flutter is an open-source framework by Google for building beautiful, natively compiled, multi-platform applications from a single codebase.

Sky: the experiment

  • The brainchild of 2 Chrome engineers: Ian Hickson & Eric Siedel
  • The experiment: "what if browsers broke backwards compatibility?"

Why Flutter?

Fastest growing skill in 2019

Why Flutter?

Success stories aplenty

  • Getting started with Flutter was truly awesome. The huge power and productivity you get with instant stateful Hot Reload was mind-blowingJacob Kristensen, Co-Founder, Reflectly
  • We knew that this app needed to be rock solid both in terms of performance and visual fidelity, and really represent the amazing experience that the Hamilton show itself providesJessica Wagner, Manager, Posse (Hamilton)
  • Flutter significantly reduced the time we need to develop for a new feature from 1 month down to 2 weeksBruce Chen, Senior Development Engineer, Alibaba

More success stories

Yes, Flutter can increase developer productivity.

Developer productivity

Screen Native
Android
Native iOS Flutter Xamarin Forms React Native
Cocktail list 5h 34m 6h 17m 4h 39m 6h 29m 6h 14m
Cocktail detail 7h 08m 5h 23m 3h 24m 6h 55m 3h 54m
Ingredient list 3h 58m 3h 23m 2h 27m 5h 04m 3h 10m
Create cocktail 5h 35m 4h 56m 3h 39m 5h 55m 4h 31m
Total 22h 15m 19h 59m 14h 09m 24h 23m 17h 49m

Grad thesis measuring time spent building a bartender app.

Yes, Flutter can increase developer productivity.

Application performance

Native Android Flutter Xamarin
React Native
Minimum 0 0 0 0
Maximum 30.1 23 33.9 43.4
Mean 7.29 5.42 12.7 13.41
Median 5.4 4.4 8.3 10.75
Standard deviation 6.02 5.08 11.13 11.22
Coefficient of variation 36.2 25.78 123.92 126.07

Same grad thesis app measuring CPU usage.

Yes, Flutter can build produce performant applications

Flutter's ideas are not new

  • Ship the framework with the application
    • Like a game development platform.
  • Multiplatform targets
    • Like React Native, Xamarin, etc.
  • Extensible component system
    • Like web, Android, iOS

How does Flutter stand out?

What separates Flutter from the crowd is that it seeks to help developers increase app quality and development velocity while reaching more users.

Provide feature parity with cost efficiency

  • The same features cost more for every platform
  • Maintaining multiple platforms is expensive & resource intensive

Provide availability & reliability

  • Android, iOS, macOS, and Web all supported. Linux & Windows under development.
  • Guaranteed reliability because of native compilation

How does Flutter accomplish this?

  • Control over every pixel
  • Compiles to native, GPU accelerated
  • Sub-second development cycles w/persisted state

Why Dart?

Why Dart?

  • Strongly typed, object-oriented language
  • Optimized for UI development
  • Developed by Google

Technical overview

Reactive Framework

Layered Cake architecture

Code First UI

  • No domain specific language
  • Everything is a widget

How do I get started?

Getting started: tooling & tutorials

  • VS Code or Android Studio/Intellij
  • Widget inspector
  • DevTools
  • Dart analyzer

Getting started: Community

Conclusion

  • All client application development is an exercise in compromise.
  • Flutter aims to reduce compromises
    • Flutter is ready for production 
    • Flutter can improve developer productivity.
    • Flutter can perform well in most use cases

Show me the code!

Made with Slides.com