SlideShare a Scribd company logo
장인수, 우아한형제들
isjang98@gmail.com
Korea
Flutter 101
INTRODUCE
U L D )G H& A GH / AB B GC B C D
-M D A A B / AB B GC B C D
( / AB B G / AB B
G C B H LA - DL / ( BA A D
. HH AD & G D AD D / AB B GC
CH D / AB ,G OPS S T NR&
Agenda
- Flutter & Dart
: Widget & Widget Tree
- Flutter VS. React Native
- Demo
- Q & A
What is Flutter
Flutter is a cross-platform mobile SDK
Developed by
for designing premium native interfaces on
&
What is Flutter
It uses Google’s own language
It is somewhat similar to
as it has an Optional built-in type safety support.
Benefits of using Flutter
High-velocity development
With features like Hot Reload, Helps you quickly build UIs, add new
features, & fix bugs.
Expressive & flexible designs
Flutter comes with a modern reactive framework along with rich set of
widgets, animation libraries & a layered extensible architecture.
Benefits of using Flutter
Access native feature and SDKs
Make your app livelier with platform APIs, 3rd party SKDs & native code
Flutter allows you to reuse your existing Java, Swift & Obj*C code,
and access
native features and SDKs on Android & iOS
Create high-quality experiences
Create superior experiences across devices & platforms with portable,
GPU-accelerated renderer & high-performance, native ARM code runtime
Who is flutter for ?
- Designers converge on a brand-driven experience on Android and iOS
- Prototypers enjoy 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.
Flutter101
About Dart
2011. 10 Dart 1
2018.2 Dart 2
Dart is a general-purpose programming language originally developed by Google
and later approved as a standard by Ecma (ECMA-408)
It is used to build web, server, and mobile applications.
Dart is an object-oriented, class defined language[9] using a C-style syntax that
transcompiles optionally into JavaScript. It supports interfaces, mixins, abstract classes,
reified generics, static typing, and a sound type system.
About Dart
http://www.etnews.com/201201040069
About Dart
http://www.itworld.co.kr/t/61023/개발자/108761
About Dart
http://flutter.io
Flutter Architecture
“Everything’s a Widget”
A widget is the basic element of any app created
with flutter.
Widget Tree
Everything’s a Widget
Stateless
Stateful
Everything’s a Widget
Stateless
- No state
- icon , iconButton, Text
Everything’s a Widget
Stateful Widgets
- Widget changes depending on state
- Checkbox, Radio, Form, TextField
- State stored in State Object
- When the state of the widget changes,
Call the setState() to rerending the widget
- Dynamic widget which has its own property
- Those properties are known as a state
- setState() method is used to update that state
class DevfestText extends StatelessWidget {
@override
Widget build(BuildContext context) =>
Text(“Hello World”)
}
Stateless
class Counter extends StatefulWidget {
Counter({ Key key}) : super(key: key);
@override
_CounterState createState() => new _CounterState();
}
class _CounterState extends State<Counter> {
int _counter = 0;
void _increment() {
setState(() {
_counter++;
});
}
@override
Widget build(BuildContext context) =>
Text(“Current Count : ” + _counter)
}
Stateful
StatelessWidget
constructor
build
StatelessWidget lifecycle
StatefulWidget
constructor
createState
StatefulWidget lifecycle
State
- build()
- initState()
- didUpdateWidget(widget oldWidget)
- dispose()
Time Flutter decides to render our app on device
New instance of App widget created,
Displaying ‘0’ on the screen.
User presses increment button
Flutter decides to rerender out app, and
Creates a new instance of App
New instance of App shows ‘0’ on the
screen
Our App
Current Count : 0
Our App
Current Count : 1
Our App
Current Count : 1
Our App
Current Count : 1
Our App
Current Count : 0
Our App
Current Count : 0
Stateless Widgets
Time Flutter decides to render our app on device
New instance of App widget created,.
App widgets ‘createState’ method called,
Resulting ‘AppState’ gets cached
User presses button, increments
Counter by 1. Flutter rerenders due to
‘setState’ call
New instance of App created, still using data
from original AppState
Our App
Our App
Current Count : 1
Our App
Current Count : 1
Our App
Our App
Our App
Our App
Current Count : 0
Stateful Widgets
+
Title
tab3tab2tab1
AppBar
TabBar
FloatingActionButton
Flutter
React Native
Flutter vs. React Native
- Productivity
- Programming Language
- Performance
- Documentation
- UI Components
- Community
Flutter vs. React Native
Productivity
1. Hot Reload Support
Flutter React Native
0 0
Flutter vs. React Native
Productivity
2. Code Structure
This aspect is completely different in Flutter & React Naitve
Flutter doesn’t separate data, style, and templates.
When using Flutter, you can save time by eliminating the necessity to switch from design mode to code and vice versa.
import React, { Component } from 'react';
import { Text, View } from 'react-native';
export default class HelloWorldApp extends Component {
render() {
return (
<View style={styles.container}>
<Text>Hello world!</Text>
</View>
);
}
}
const styles = StyleSheet.create({
container : {
flex: 1,
backgroundColor: ‘#fff’,
alignItems: ‘center’
jystifyContent: ‘center’
},
})
import ‘package:flutter/material.dart’;
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: ’Welcome to Flutter’,
home: Scaffold(
appBar: AppBar(
title: Text(’Welcome to Flutter’),
),
body: Center(
child : Text(’Hello World’),
),
),
);
}
}
Flutter vs. React Native
Productivity
3. Installation and Setup
The whole installation process appears to be more convenient in Flutter.
Flutter > React Native
Flutter offers a useful tool for system error inspection
It’s “Flutter doctor”
Flutter vs. React Native
Productivity
4. IDE Support
React Native > Flutter
React Naitve is supported by almost every available IDE.
Flutter is supported by Android Studio, IntelliJ IDEA and VS Code.
Flutter vs. React Native
Productivity
5. API
React Native provides native interface for Wi-FI, Geolocation, NFC Payment, Camera and BT
Flutter is developing by a lot of developers. So Flutter is winner or loser depends on how fast release & how good they are.
Flutter vs. React Native
Programming Languages
React Native utilizes JS(Java Script)
Flutter does’nt appear to be in the winning position here. Because Flutter uses a losser-known language called Dart
Performance (React Native)
React Native include two parts in its architecture
- JavaScript Language.
- Native components.
Flutter vs. React Native
React Native uses JavaScript BUT to interact with
native components(ex) OEM Widget, GPS.. Etc)
A JavaScript Bridge is required.
Performance (Flutter)
Flutter vs. React Native
Flutter doesn’t need a bridge.
It can work much faster.
Therefore, Flutter is able to run animation at 60 fps.
Flutter vs. React Native
Documentation
(Flutter) Google Team already knows how to write & developer support & understandable and detailed
documentation for their frameworks and programming language.
React Native also has a general documentation. But Also depends on external dev kits documents.
Flutter vs. React Native
UI Components
- Flutter provides in built UI elements called widgets in place of native ones.
https://flutter.io/widgets/
- It can be easily customized.
- Flutter has widgets for every popular mobile platform as well as platform-independent widgets
Nevertheless, React native is a far greater number of external UI Kits.
react native external UI Kits
Flutter vs. React Native
Community
React Native’s knowledge base and the developers’ community are larger at the moment.
Nevertheless, Flutter’s community is growing nowadays
Korea
Flutter vs. React Native
Community
Flutter ReactNative
Github Star 40,436 70,480
User community 3,800 13,700
StackOverflow tag 6,898 40764
DEMO
Korea
Korea
Thank you!
장인수, 우아한형제들
isjang98@gmail.com
Q&A
Korea

More Related Content

What's hot (20)

PPTX
Flutter introduction
Võ Duy Tuấn
 
PDF
Flutter overview - advantages & disadvantages for business
Bartosz Kosarzycki
 
PPTX
Introduction to Flutter
Apoorv Pandey
 
PPTX
Flutter
Ankit Kumar
 
PDF
Building beautiful apps using google flutter
Ahmed Abu Eldahab
 
PDF
What is flutter and why should i care?
Sergi Martínez
 
PDF
Google flutter the easy and practical way IEEE Alazhar
Ahmed Abu Eldahab
 
PDF
Google flutter the easy and practical way
Ahmed Abu Eldahab
 
PDF
Getting started with flutter
rihannakedy
 
PPTX
Flutter session 01
DSC IEM
 
PPTX
Flutter
shreyash singh
 
PPTX
Cross platform app development with flutter
Hwan Jo
 
PPTX
Flutter
Mohit Sharma
 
PDF
Flutter
Dave Chao
 
PDF
Introduction to Flutter - truly crossplatform, amazingly fast
Bartosz Kosarzycki
 
PPTX
Introduction to Flutter.pptx
DiffouoFopaEsdras
 
PPTX
Flutter for web
rihannakedy
 
PDF
INTRODUCTION TO FLUTTER.pdf
AdarshMathuri
 
PDF
Flutter vs React Native | Edureka
Edureka!
 
Flutter introduction
Võ Duy Tuấn
 
Flutter overview - advantages & disadvantages for business
Bartosz Kosarzycki
 
Introduction to Flutter
Apoorv Pandey
 
Flutter
Ankit Kumar
 
Building beautiful apps using google flutter
Ahmed Abu Eldahab
 
What is flutter and why should i care?
Sergi Martínez
 
Google flutter the easy and practical way IEEE Alazhar
Ahmed Abu Eldahab
 
Google flutter the easy and practical way
Ahmed Abu Eldahab
 
Getting started with flutter
rihannakedy
 
Flutter session 01
DSC IEM
 
Cross platform app development with flutter
Hwan Jo
 
Flutter
Mohit Sharma
 
Flutter
Dave Chao
 
Introduction to Flutter - truly crossplatform, amazingly fast
Bartosz Kosarzycki
 
Introduction to Flutter.pptx
DiffouoFopaEsdras
 
Flutter for web
rihannakedy
 
INTRODUCTION TO FLUTTER.pdf
AdarshMathuri
 
Flutter vs React Native | Edureka
Edureka!
 

Similar to Flutter101 (20)

PPTX
Lecture -Introduction to Flutter and Dart.pptx
FarhanGhafoor7
 
PPTX
603848771-Lecture-1-Intro-to-Flutter-and-Dart.pptx
FarhanGhafoor7
 
PPTX
Introduction to flutter's basic concepts
Kumaresh Chandra Baruri
 
PPTX
Hariom_project.pptxjhbyubiyubiyugbybuybybgygy
hariomhp2003
 
PPTX
Flutter vs react native – from developer point
BOSC Tech Labs
 
DOCX
flutter-general-report.docx
KuntalSasmal1
 
PPTX
Flutter presentation.pptx
FalgunSorathiya
 
PDF
React Native VS Flutter - Which One is The Best.
Techugo
 
PDF
React Native Vs Flutter, which one you should choose.pdf
Integrated IT Solutions
 
PDF
Flutter study jam 2019
Ahmed Abu Eldahab
 
PPT
UNIT-1 __ Introduction to Flutter.ppt
leela rani
 
PPTX
React-Native-vs-Flutter-A-Detailed-Comparison.pptx
lebipo9870
 
PDF
Flutter App Development Building Cross-Platform Apps.pdf
Shiv Technolabs Pvt. Ltd.
 
PPTX
Flutter vs. React Native Which Framework Reigns Supreme in 2024.pptx
Auspicious Soft Pvt Ltd
 
PDF
React native vs. flutter a detailed analysis
MoonTechnolabsPvtLtd
 
PPTX
Flutter Introduction and Architecture
Jenish MS
 
PDF
Flutter vs React Native_ Which is Best for Your Next Project.pdf
Quickway Infosystems
 
PPTX
Flutter
Himanshu Singh
 
PDF
Flutter App Development- Why Should You Choose It .
Techugo
 
PPTX
Flutter alegria event gdsc pillai college of engineering
AnandMenon54
 
Lecture -Introduction to Flutter and Dart.pptx
FarhanGhafoor7
 
603848771-Lecture-1-Intro-to-Flutter-and-Dart.pptx
FarhanGhafoor7
 
Introduction to flutter's basic concepts
Kumaresh Chandra Baruri
 
Hariom_project.pptxjhbyubiyubiyugbybuybybgygy
hariomhp2003
 
Flutter vs react native – from developer point
BOSC Tech Labs
 
flutter-general-report.docx
KuntalSasmal1
 
Flutter presentation.pptx
FalgunSorathiya
 
React Native VS Flutter - Which One is The Best.
Techugo
 
React Native Vs Flutter, which one you should choose.pdf
Integrated IT Solutions
 
Flutter study jam 2019
Ahmed Abu Eldahab
 
UNIT-1 __ Introduction to Flutter.ppt
leela rani
 
React-Native-vs-Flutter-A-Detailed-Comparison.pptx
lebipo9870
 
Flutter App Development Building Cross-Platform Apps.pdf
Shiv Technolabs Pvt. Ltd.
 
Flutter vs. React Native Which Framework Reigns Supreme in 2024.pptx
Auspicious Soft Pvt Ltd
 
React native vs. flutter a detailed analysis
MoonTechnolabsPvtLtd
 
Flutter Introduction and Architecture
Jenish MS
 
Flutter vs React Native_ Which is Best for Your Next Project.pdf
Quickway Infosystems
 
Flutter App Development- Why Should You Choose It .
Techugo
 
Flutter alegria event gdsc pillai college of engineering
AnandMenon54
 
Ad

Recently uploaded (8)

PPT
lec2 wireless transmission exlaining.ppt
212231
 
PDF
💡 Digital Marketing Decoded: Mastering Online Growth Strategies for 2025 🚀
marketingaura24
 
PDF
INTERLINGUAL SYNTACTIC PARSING: AN OPTIMIZED HEAD-DRIVEN PARSING FOR ENGLISH ...
kevig
 
PDF
Call For Papers - International Journal on Natural Language Computing (IJNLC)
kevig
 
PDF
Building Smart, Scalable Solutions with Android App Development
Brancosoft Private Limited
 
PPTX
Mobile Apps Helping Business Grow in 2025
Infylo Techsolutions
 
PPT
lect 1 Introduction.ppt11112222333344455
212231
 
PPTX
The Intersection of Emoji and NFT. What can be the Consequences?
Refit Global
 
lec2 wireless transmission exlaining.ppt
212231
 
💡 Digital Marketing Decoded: Mastering Online Growth Strategies for 2025 🚀
marketingaura24
 
INTERLINGUAL SYNTACTIC PARSING: AN OPTIMIZED HEAD-DRIVEN PARSING FOR ENGLISH ...
kevig
 
Call For Papers - International Journal on Natural Language Computing (IJNLC)
kevig
 
Building Smart, Scalable Solutions with Android App Development
Brancosoft Private Limited
 
Mobile Apps Helping Business Grow in 2025
Infylo Techsolutions
 
lect 1 Introduction.ppt11112222333344455
212231
 
The Intersection of Emoji and NFT. What can be the Consequences?
Refit Global
 
Ad

Flutter101

  • 2. INTRODUCE U L D )G H& A GH / AB B GC B C D -M D A A B / AB B GC B C D ( / AB B G / AB B G C B H LA - DL / ( BA A D . HH AD & G D AD D / AB B GC CH D / AB ,G OPS S T NR&
  • 3. Agenda - Flutter & Dart : Widget & Widget Tree - Flutter VS. React Native - Demo - Q & A
  • 4. What is Flutter Flutter is a cross-platform mobile SDK Developed by for designing premium native interfaces on &
  • 5. What is Flutter It uses Google’s own language It is somewhat similar to as it has an Optional built-in type safety support.
  • 6. Benefits of using Flutter High-velocity development With features like Hot Reload, Helps you quickly build UIs, add new features, & fix bugs. Expressive & flexible designs Flutter comes with a modern reactive framework along with rich set of widgets, animation libraries & a layered extensible architecture.
  • 7. Benefits of using Flutter Access native feature and SDKs Make your app livelier with platform APIs, 3rd party SKDs & native code Flutter allows you to reuse your existing Java, Swift & Obj*C code, and access native features and SDKs on Android & iOS Create high-quality experiences Create superior experiences across devices & platforms with portable, GPU-accelerated renderer & high-performance, native ARM code runtime
  • 8. Who is flutter for ? - Designers converge on a brand-driven experience on Android and iOS - Prototypers enjoy 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.
  • 10. About Dart 2011. 10 Dart 1 2018.2 Dart 2 Dart is a general-purpose programming language originally developed by Google and later approved as a standard by Ecma (ECMA-408) It is used to build web, server, and mobile applications. Dart is an object-oriented, class defined language[9] using a C-style syntax that transcompiles optionally into JavaScript. It supports interfaces, mixins, abstract classes, reified generics, static typing, and a sound type system.
  • 15. “Everything’s a Widget” A widget is the basic element of any app created with flutter.
  • 18. Everything’s a Widget Stateless - No state - icon , iconButton, Text
  • 19. Everything’s a Widget Stateful Widgets - Widget changes depending on state - Checkbox, Radio, Form, TextField - State stored in State Object - When the state of the widget changes, Call the setState() to rerending the widget - Dynamic widget which has its own property - Those properties are known as a state - setState() method is used to update that state
  • 20. class DevfestText extends StatelessWidget { @override Widget build(BuildContext context) => Text(“Hello World”) } Stateless
  • 21. class Counter extends StatefulWidget { Counter({ Key key}) : super(key: key); @override _CounterState createState() => new _CounterState(); } class _CounterState extends State<Counter> { int _counter = 0; void _increment() { setState(() { _counter++; }); } @override Widget build(BuildContext context) => Text(“Current Count : ” + _counter) } Stateful
  • 23. StatefulWidget constructor createState StatefulWidget lifecycle State - build() - initState() - didUpdateWidget(widget oldWidget) - dispose()
  • 24. Time Flutter decides to render our app on device New instance of App widget created, Displaying ‘0’ on the screen. User presses increment button Flutter decides to rerender out app, and Creates a new instance of App New instance of App shows ‘0’ on the screen Our App Current Count : 0 Our App Current Count : 1 Our App Current Count : 1 Our App Current Count : 1 Our App Current Count : 0 Our App Current Count : 0 Stateless Widgets
  • 25. Time Flutter decides to render our app on device New instance of App widget created,. App widgets ‘createState’ method called, Resulting ‘AppState’ gets cached User presses button, increments Counter by 1. Flutter rerenders due to ‘setState’ call New instance of App created, still using data from original AppState Our App Our App Current Count : 1 Our App Current Count : 1 Our App Our App Our App Our App Current Count : 0 Stateful Widgets
  • 28. Flutter vs. React Native - Productivity - Programming Language - Performance - Documentation - UI Components - Community
  • 29. Flutter vs. React Native Productivity 1. Hot Reload Support Flutter React Native 0 0
  • 30. Flutter vs. React Native Productivity 2. Code Structure This aspect is completely different in Flutter & React Naitve Flutter doesn’t separate data, style, and templates. When using Flutter, you can save time by eliminating the necessity to switch from design mode to code and vice versa.
  • 31. import React, { Component } from 'react'; import { Text, View } from 'react-native'; export default class HelloWorldApp extends Component { render() { return ( <View style={styles.container}> <Text>Hello world!</Text> </View> ); } } const styles = StyleSheet.create({ container : { flex: 1, backgroundColor: ‘#fff’, alignItems: ‘center’ jystifyContent: ‘center’ }, })
  • 32. import ‘package:flutter/material.dart’; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: ’Welcome to Flutter’, home: Scaffold( appBar: AppBar( title: Text(’Welcome to Flutter’), ), body: Center( child : Text(’Hello World’), ), ), ); } }
  • 33. Flutter vs. React Native Productivity 3. Installation and Setup The whole installation process appears to be more convenient in Flutter. Flutter > React Native Flutter offers a useful tool for system error inspection It’s “Flutter doctor”
  • 34. Flutter vs. React Native Productivity 4. IDE Support React Native > Flutter React Naitve is supported by almost every available IDE. Flutter is supported by Android Studio, IntelliJ IDEA and VS Code.
  • 35. Flutter vs. React Native Productivity 5. API React Native provides native interface for Wi-FI, Geolocation, NFC Payment, Camera and BT Flutter is developing by a lot of developers. So Flutter is winner or loser depends on how fast release & how good they are.
  • 36. Flutter vs. React Native Programming Languages React Native utilizes JS(Java Script) Flutter does’nt appear to be in the winning position here. Because Flutter uses a losser-known language called Dart
  • 37. Performance (React Native) React Native include two parts in its architecture - JavaScript Language. - Native components. Flutter vs. React Native React Native uses JavaScript BUT to interact with native components(ex) OEM Widget, GPS.. Etc) A JavaScript Bridge is required.
  • 38. Performance (Flutter) Flutter vs. React Native Flutter doesn’t need a bridge. It can work much faster. Therefore, Flutter is able to run animation at 60 fps.
  • 39. Flutter vs. React Native Documentation (Flutter) Google Team already knows how to write & developer support & understandable and detailed documentation for their frameworks and programming language. React Native also has a general documentation. But Also depends on external dev kits documents.
  • 40. Flutter vs. React Native UI Components - Flutter provides in built UI elements called widgets in place of native ones. https://flutter.io/widgets/ - It can be easily customized. - Flutter has widgets for every popular mobile platform as well as platform-independent widgets Nevertheless, React native is a far greater number of external UI Kits. react native external UI Kits
  • 41. Flutter vs. React Native Community React Native’s knowledge base and the developers’ community are larger at the moment. Nevertheless, Flutter’s community is growing nowadays
  • 42. Korea Flutter vs. React Native Community Flutter ReactNative Github Star 40,436 70,480 User community 3,800 13,700 StackOverflow tag 6,898 40764