SlideShare una empresa de Scribd logo
1 de 92
Descargar para leer sin conexión
Flutter Beyond Hello world!
By : Ahmed Abu Eldahab
@dahabdev
Ahmed Abu Eldahab
Senior Technical Consultant
Google Developer Expert in Flutter
/Dahabdev
@dahabdev
Tell me about you?
Developers ,
Designers , Mac ,
Linux , Windows ,
Web , Mobile ,
Android , ios ?
@dahabdev
Mobile Development Approaches
Flutter Approach
Canvas
Events
Location Bluetooth
Camera Sensors
Native ARM
Binary
Code
Services
Platform
Channels
Flutter Widgets
Cupertino
Material Design
What makes Flutter unique?
- Compiles to Native Code (ARM Binary code)
- No reliance on OEM widgets
- No bridge needed
- No markup language (only Dart)
Build
beautiful apps
in record time
Control every pixel on the screen
Make your brand come to life
Never say "no" to your designer
Stand out in the marketplace
Win awards with beautiful UI
Expressive, beautiful UIs
Flutter support many types of
Animations
- Tween
- Hero
- Sliver
- Transform
- FadeInWidget
- Animation Builder
- AnimatedOpacity
- Physics-based animation
Beautiful Animations
Fast
Brings the power of a games engine to
user experience development
60fps, GPU accelerated
Compiled to native machine code
Sub-second reload times
Paint your app to life
Iterate rapidly on features
Test hypotheses quicker than ever
More time to experiment & test
features
Single-codebase for faster collab
3X Productivity Gains
Productive
Flutter Architecture
Flutter Architecture
● Language and Libraries
● Packages manager https://pub.dev
● Virtual machine
● Compile to Javascript dart2js
Dart is a client-optimized language for fast apps on any platform!
(Web - Desktop - Mobile - Embedded)?
Everything is a Widget
Everything is a Widget
Everything is a Widget
Stateless Widget is immutable widget doesn’t know anything
& Gets render only once or when the parent widget changes
the configuration
Everything is a Widget
Stateful Widget is mutable widget which has its own
properties knowing as state and it can be changed by user
input or by using setState()
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
Data Flow
Data (State)
User Interface
@dahabdev
Data (State)
Data (State)
Data (State)
Data (State)
Data (State)
Dependency
injection
Data (State)
Dependency
injection
Flutter Widgets
Data
Flutter Widgets
Data
InheritedWidget
Data (State )Management
InheritedWidget
Data (State )Management
Data (State )Management
Data (State )Management
Data (State )Management
Data (State )Management
Data (State )Management
Provider
Data (State )Management
Data (State )Management
https://pub.dev/packages/provider
Scoped Model
Data (State )Management
Data (State )Management
https://pub.dev/packages/scoped_model
Bloc
Data (State )Management
Data (State )Management
https://pub.dev/packages/bloc
Redux
Data (State )Management
Data (State )Management
https://pub.dev/packages/flutter_redux
Mobx
Data (State )Management
Data (State )Management
https://pub.dev/packages/flutter_mobx
Data (State )Management
https://pub.dev/packages/fish_redux
Data (State )Management
Streams
Data (State )Management
Data (State )Management
1. Scoped_model
2. Provider
3. Bloc
4. Mobx
5. Redux
Design Patterns
Directory structure
Flutter Design Patterns
Flutter Design Patterns
Flutter Design Patterns
https://github.com/brianegan/flutter_architecture_samples
http://fluttersamples.com
Thanks
Ahmed Abu Eldahab
Senior Technical Consultant
Google Developer Expert in Flutter
/Dahabdev

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Flutter
FlutterFlutter
Flutter
 
Android jetpack compose | Declarative UI
Android jetpack compose | Declarative UI Android jetpack compose | Declarative UI
Android jetpack compose | Declarative UI
 
Android development orientation for starters v2
Android development orientation for starters v2Android development orientation for starters v2
Android development orientation for starters v2
 
MOPCON 2014 - Best software architecture in app development
MOPCON 2014 - Best software architecture in app developmentMOPCON 2014 - Best software architecture in app development
MOPCON 2014 - Best software architecture in app development
 
Flutter talkshow
Flutter talkshowFlutter talkshow
Flutter talkshow
 
Jetpack Compose - Android’s modern toolkit for building native UI
Jetpack Compose - Android’s modern toolkit for building native UIJetpack Compose - Android’s modern toolkit for building native UI
Jetpack Compose - Android’s modern toolkit for building native UI
 
Flutter
FlutterFlutter
Flutter
 
Flutter festival - Write your first Flutter application
Flutter festival - Write your first Flutter applicationFlutter festival - Write your first Flutter application
Flutter festival - Write your first Flutter application
 
Web Text Emoji Widget
Web Text Emoji WidgetWeb Text Emoji Widget
Web Text Emoji Widget
 
Flutter workshop
Flutter workshopFlutter workshop
Flutter workshop
 
Why choose flutter 2 over flutter 1
Why choose flutter 2 over flutter 1 Why choose flutter 2 over flutter 1
Why choose flutter 2 over flutter 1
 
Jetpack compose
Jetpack composeJetpack compose
Jetpack compose
 
Flutter app
Flutter appFlutter app
Flutter app
 
React Native
React NativeReact Native
React Native
 
Mobile development with Flutter
Mobile development with FlutterMobile development with Flutter
Mobile development with Flutter
 
KKBOX WWDC17 UIKit - QQ
KKBOX WWDC17 UIKit - QQKKBOX WWDC17 UIKit - QQ
KKBOX WWDC17 UIKit - QQ
 
What is Flutter
What is FlutterWhat is Flutter
What is Flutter
 
Android development orientation for starters v4 seminar
Android development orientation for starters v4   seminarAndroid development orientation for starters v4   seminar
Android development orientation for starters v4 seminar
 
Introduction to flutter(1)
 Introduction to flutter(1) Introduction to flutter(1)
Introduction to flutter(1)
 
React Native for ReactJS Devs
React Native for ReactJS DevsReact Native for ReactJS Devs
React Native for ReactJS Devs
 

Similar a Flutter beyond Hello world talk

Similar a Flutter beyond Hello world talk (20)

Flutter beyond hello world
Flutter beyond hello worldFlutter beyond hello world
Flutter beyond hello world
 
Flutter beyond hello world GCDC Egypt Devfest 2019
Flutter beyond hello world GCDC Egypt  Devfest 2019Flutter beyond hello world GCDC Egypt  Devfest 2019
Flutter beyond hello world GCDC Egypt Devfest 2019
 
Game Architecture with Scriptable Objects
Game Architecture with Scriptable ObjectsGame Architecture with Scriptable Objects
Game Architecture with Scriptable Objects
 
compose_speaker_session.pdf
compose_speaker_session.pdfcompose_speaker_session.pdf
compose_speaker_session.pdf
 
DecoratedBoxTransition Widget – Definition, Properties & How to Use It.pptx
DecoratedBoxTransition Widget – Definition, Properties & How to Use It.pptxDecoratedBoxTransition Widget – Definition, Properties & How to Use It.pptx
DecoratedBoxTransition Widget – Definition, Properties & How to Use It.pptx
 
Google flutter the easy and practical way
Google flutter the easy and practical wayGoogle flutter the easy and practical way
Google flutter the easy and practical way
 
Lightweight Xtext Editors as SWT Widgets
Lightweight Xtext Editors as SWT WidgetsLightweight Xtext Editors as SWT Widgets
Lightweight Xtext Editors as SWT Widgets
 
Flutter Introduction and Architecture
Flutter Introduction and ArchitectureFlutter Introduction and Architecture
Flutter Introduction and Architecture
 
Creating a WYSIWYG Editor with React
Creating a WYSIWYG Editor with ReactCreating a WYSIWYG Editor with React
Creating a WYSIWYG Editor with React
 
DrupalTour. Lviv — Bumpy road of Drupal7 (Pavel Shevchuk, EPAM)
DrupalTour. Lviv — Bumpy road of Drupal7 (Pavel Shevchuk, EPAM)DrupalTour. Lviv — Bumpy road of Drupal7 (Pavel Shevchuk, EPAM)
DrupalTour. Lviv — Bumpy road of Drupal7 (Pavel Shevchuk, EPAM)
 
Jetpack Compose a nova forma de implementar UI no Android
Jetpack Compose a nova forma de implementar UI no AndroidJetpack Compose a nova forma de implementar UI no Android
Jetpack Compose a nova forma de implementar UI no Android
 
Introduzione a flutter
Introduzione a flutterIntroduzione a flutter
Introduzione a flutter
 
Choose flutter
Choose flutterChoose flutter
Choose flutter
 
Introduction to Vaadin
Introduction to VaadinIntroduction to Vaadin
Introduction to Vaadin
 
IoT with Vaadin Elements
IoT with Vaadin ElementsIoT with Vaadin Elements
IoT with Vaadin Elements
 
Intro to jQuery
Intro to jQueryIntro to jQuery
Intro to jQuery
 
Building Modern Apps using Android Architecture Components
Building Modern Apps using Android Architecture ComponentsBuilding Modern Apps using Android Architecture Components
Building Modern Apps using Android Architecture Components
 
Introduction to flutter's basic concepts
Introduction to flutter's basic conceptsIntroduction to flutter's basic concepts
Introduction to flutter's basic concepts
 
Max Koretskyi "Why are Angular and React so fast?"
Max Koretskyi "Why are Angular and React so fast?"Max Koretskyi "Why are Angular and React so fast?"
Max Koretskyi "Why are Angular and React so fast?"
 
CFInterop
CFInteropCFInterop
CFInterop
 

Más de Ahmed Abu Eldahab

Más de Ahmed Abu Eldahab (20)

The Flutter Job Market At The Moment
The Flutter Job Market At The MomentThe Flutter Job Market At The Moment
The Flutter Job Market At The Moment
 
Flutter A year of creativity!
Flutter A year of creativity!Flutter A year of creativity!
Flutter A year of creativity!
 
Flutter latest updates and features 2022
Flutter latest updates and features 2022Flutter latest updates and features 2022
Flutter latest updates and features 2022
 
Flutter 2.8 features and updates
Flutter 2.8 features and updatesFlutter 2.8 features and updates
Flutter 2.8 features and updates
 
6 x1 flutter_talk
6 x1 flutter_talk6 x1 flutter_talk
6 x1 flutter_talk
 
Null safety in dart and flutter , the whole story!
Null safety in dart and flutter , the whole story!Null safety in dart and flutter , the whole story!
Null safety in dart and flutter , the whole story!
 
What's new in flutter and dart in 2020
 What's new in flutter and dart in 2020   What's new in flutter and dart in 2020
What's new in flutter and dart in 2020
 
Build responsive applications with google flutter
Build responsive applications with  google flutterBuild responsive applications with  google flutter
Build responsive applications with google flutter
 
Becoming a software developer
Becoming a software developerBecoming a software developer
Becoming a software developer
 
Build web applications using google flutter part 2
Build web applications using google flutter part 2Build web applications using google flutter part 2
Build web applications using google flutter part 2
 
Build web applications using google flutter
Build web applications using google flutterBuild web applications using google flutter
Build web applications using google flutter
 
Google flutter the easy and practical way IEEE Alazhar
Google flutter the easy and practical way IEEE AlazharGoogle flutter the easy and practical way IEEE Alazhar
Google flutter the easy and practical way IEEE Alazhar
 
Google flutter the easy and practical way
Google flutter the easy and practical wayGoogle flutter the easy and practical way
Google flutter the easy and practical way
 
Google flutter the easy and practical way
Google flutter the easy and practical wayGoogle flutter the easy and practical way
Google flutter the easy and practical way
 
Cybersecurity in an IoT and Mobile World
Cybersecurity in an IoT and Mobile WorldCybersecurity in an IoT and Mobile World
Cybersecurity in an IoT and Mobile World
 
Flutter state management from zero to hero
Flutter state management from zero to heroFlutter state management from zero to hero
Flutter state management from zero to hero
 
Flutter state management from zero to hero
Flutter state management from zero to heroFlutter state management from zero to hero
Flutter state management from zero to hero
 
Building your actions for Google Assistant
Building your actions for Google AssistantBuilding your actions for Google Assistant
Building your actions for Google Assistant
 
Building beautiful apps with Google flutter
Building beautiful apps with Google flutterBuilding beautiful apps with Google flutter
Building beautiful apps with Google flutter
 
Building Successful Apps with Google Firebase
Building Successful Apps with Google FirebaseBuilding Successful Apps with Google Firebase
Building Successful Apps with Google Firebase
 

Último

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Último (20)

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

Flutter beyond Hello world talk