Dhrumil Shah
Mobile Developer,
@Shipmnts
Co-organizer,
Google Developers Group
Ahmedabad
Slide 3
Slide 3 text
What is Flutter?
● An SDK which helps to build high-performing, modern
and beautiful apps
● Works for both Android and iOS
● An open-source toolkit, developed by Google*
● 100+ contributions from the open source community
*Currently in Beta
JavaScript
realm
Native
realm
⇦ Context Switch ⇨
Services,
Events,
Widgets
Your app
The Bridge
Slide 9
Slide 9 text
Flutter
Advantages of reactive views, without a JS bridge
Compiled to native code (not VM) on each platform
Slide 10
Slide 10 text
Who is Flutter for?
● Designers converge on a brand-driven experience on Android and iOS
● Prototypers get a high-fidelity and fast way to build working prototypes.
● Developers benefit from fantastic developer tools, an easy-to-use language, a
rich set of widgets and great IDE support. Flutter frees up valuable time for
working on features and delightful experiences.
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
1. Developer Experience
2. Performance
Slide 13
Slide 13 text
Design-oriented
Development Flow
Slide 14
Slide 14 text
What do you see here?
Slide 15
Slide 15 text
Diagram the Layout
- Look for rows and columns
- Is there a grid?
- Any overlapping elements?
- Do we need tabs?
- Padding, alignment or borders needed?
Slide 16
Slide 16 text
Designing bottom up
Slide 17
Slide 17 text
Everything is Widget here
Slide 18
Slide 18 text
Hot Reload
● Injecting updated source code files into the running Dart VM
● Stateful: App state is retained after a reload.
● Quickly iterate on a screen deeply nested in your app
Slide 19
Slide 19 text
No content
Slide 20
Slide 20 text
Skia Dart Text
Foundation
Animation Painting
Rendering
Widgets
Material
Gestures
Engine
(C++)
Framework
(Dart)
Cupertino
Each layer builds upon the previous layer
Slide 21
Slide 21 text
Flutter’s new architecture
Flutter provides its own widgets
● Compiles to native Code
● No reliance on OEM widgets
● No bridge needed
● Turns layout on its head!
● Widgets are simple and fast
● Full customisation and extensibility
Slide 22
Slide 22 text
No content
Slide 23
Slide 23 text
Platform Channels
Slide 24
Slide 24 text
Using Platform channels
allows for receiving
method calls and
sending back results
Customizing and extending Widgets
Flutter’s Widget system was designed to be easily customizable
Composition: Widgets are built out of smaller widgets that you can reuse and
combine in novel ways to make custom widgets
class RaisedButton extends StatelessWidget {
...
}