Flutter forward
Building for native & beyond in Flutter
by Ryan Edge
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?
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-blowing – Jacob 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 provides – Jessica Wagner, Manager, Posse (Hamilton)
- Flutter significantly reduced the time we need to develop for a new feature from 1 month down to 2 weeks – Bruce 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
- Join an online 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!
Flutter forward: Building for native & beyond in Flutter
By Ryan Edge
Flutter forward: Building for native & beyond in Flutter
Flutter has quickly become a hot topic, ascending to the fastest-growing skill according to LinkedIn just a year after its 1.0 release. Let’s explore Flutter: what it is, what problems it solves, and what differentiates it from an expanding field of client application development solutions.
- 167