By : Ahmed Abu Eldahab @dahabdev
Ahmed Abu Eldahab
Senior Technical Consultant
Google Developer Expert in Flutter
/Dahabdev
20 MINUTES Intro
40 MINUTES
Flutter Beyond Hello world! (Part 1)
10 MINUTES Break
60 MINUTES Flutter Beyond Hello world! (Part 2)
SHARE
FEEDBACK
Share photos, insights using the hashtags #StudyJamMENA #GDGMENA #Flutter
#FlutterStudyJam #OnlineFlutterStudyJam #FlutterDev @dahabdev
AGENDA
Flutter Beyond Hello world!
By : Ahmed Abu Eldahab
@dahabdevOnline StudyJam
Everything is a Widget
WIDGET
Stateless Widget Stateful Widget
WIDGET
STATE
VS
Everything is a Widget
WIDGET
Stateless Widget Stateful Widget
WIDGET
STATE
VS
Everything is a Widget
WIDGET
Stateless Widget Stateful Widget
WIDGET
STATE
VS
Everything is a Widget
Flutter Widgets
Flutter Widgets
Flutter Widgets
Flutter Widgets
Flutter Widgets
Flutter Widgets
Flutter Widgets
Flutter Widgets
Flutter Widgets
Flutter Widgets
Flutter Widgets
Flutter Widgets
Flutter Widgets
Flutter Widgets
Flutter Widgets
Stateless Widget
Constructor Function
build()
Stateful Widget
Constructor Function
build()
initState()
setState()
build()
didUpdateWidget()
dispose()
Flutter Widgets
Flutter Widgets
Rebuilds frequently
Element Tree Render TreeWidget Tree
Rarely rebuilds Rarely rebuilds
Container ElementContainer
Column
Text
Column Element
Text Element
Rendered Box
Rendered Box
Rendered Box
Flutter Widgets
Rebuilds frequently
Element Tree Render TreeWidget Tree
Rarely rebuilds Rarely rebuilds
Container ElementContainer
Column
Text
Column Element
Text Element
Rendered Box
Rendered Box
Rendered Box
Flutter Widgets
Rebuilds frequently
Element Tree Render TreeWidget Tree
Rarely rebuilds Rarely rebuilds
Container ElementContainer
Column Column Element
Text Element
Rendered Box
Rendered Box
Rendered Box
Flutter Widgets
Rebuilds frequently
Element Tree Render TreeWidget Tree
Rarely rebuilds Rarely rebuilds
Container ElementContainer
Column Column Element
Rendered Box
Rendered Box
Flutter Widgets
Rebuilds frequently
Element Tree Render TreeWidget Tree
Rarely rebuilds Rarely rebuilds
Container ElementContainer
Column
List
Column Element
List Element
Rendered Box
Rendered Box
Rendered Box
Flutter Widgets
Rebuilds frequently
Element Tree Render TreeWidget Tree
Rarely rebuilds Rarely rebuilds
Container ElementContainer
Column
List
Column Element
List Element
Rendered Box
Rendered Box
Rendered Box
Flutter Widgets
Rebuilds frequently
Element Tree Render TreeWidget Tree
Rarely rebuilds Rarely rebuilds
Container ElementContainer
Column
List
Column Element
List Element
Rendered Box
Rendered Box
Rendered Box
Flutter Widgets
Rebuilds frequently
Element Tree Render TreeWidget Tree
Rarely rebuilds Rarely rebuilds
Container ElementContainer
Column
List
Column Element
List Element
Rendered Box
Rendered Box
Rendered Box
Flutter Widgets
Rebuilds frequently
Element Tree Render TreeWidget Tree
Rarely rebuilds Rarely rebuilds
Container ElementContainer
Column
List
Column Element
List Element
Rendered Box
Rendered Box
Rendered Box
Flutter Widgets
Rebuilds frequently
Element Tree Render TreeWidget Tree
Rarely rebuilds Rarely rebuilds
Container ElementContainer
Column
List
Column Element
List Element
Rendered Box
Rendered Box
Rendered Box
Unique Key Unique Key
Flutter Widgets
Rebuilds frequently
Element Tree Render TreeWidget Tree
Rarely rebuilds Rarely rebuilds
Container ElementContainer
Column
List
Column Element
List Element
Rendered Box
Rendered Box
Rendered Box
Unique Key Unique Key
Flutter Widgets
Rebuilds frequently
Element Tree Render TreeWidget Tree
Rarely rebuilds Rarely rebuilds
Container ElementContainer
Column
List
Column Element
List Element
Rendered Box
Rendered Box
Rendered Box
Unique Key Unique Key
Flutter Widgets
Rebuilds frequently
Element Tree Render TreeWidget Tree
Rarely rebuilds Rarely rebuilds
Container ElementContainer
Column
List
Column Element
List Element
Rendered Box
Rendered Box
Rendered Box
Unique Key Unique Key
Flutter Widgets
https://www.youtube.com/watch?v=kn0EOS-ZiIc
Flutter Widgets
InheritedWidget
Flutter Widgets
State Management
https://pub.dev/packages/provider
State Management
Directory structure
Directory structure
We Will build simple Application with three screens
App Theme
App Theme
Routing
MyApp
MaterialApp
HomeScreen SecondScreenThirdScreen
Named Routes
Custom Fonts
Custom Fonts
Connect to Database
Flutter
Mysql
MSSQL
Oracle
Connect to Database
Flutter
Mysql
MSSQL
Oracle
Connect to Database
Flutter
Mysql
MSSQL
Oracle
Web Server
API Interface
http://jsonplaceholder.typicode.com https://app.quicktype.io/ https://picsum.photos
Dart Data Types
List
int bool
Set Map
String double
Uri DateTime
num
https://api.dart.dev/stable/2.4.0/dart-core/dart-core-library.html
Fetching Data from Web
Async in Dart
FutureBuilder Async = await
Thanks
We will be back in 10 minutes
Ahmed Abu Eldahab
Senior Technical Consultant
Google Developer Expert in Flutter
/Dahabdev

Flutter beyond hello world