Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
How to build native-experience with cross-platform
Search
Kajornsak Peerapathananont
October 09, 2022
Technology
27
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
How to build native-experience with cross-platform
GDG Bangkok DevFest 2022
Kajornsak Peerapathananont
October 09, 2022
More Decks by Kajornsak Peerapathananont
See All by Kajornsak Peerapathananont
Full-Stack Development with FlutterFire
kajornsakp
0
26
Understanding your Android build
kajornsakp
0
55
iOSDevTH #21
kajornsakp
0
64
What's new in Flutter (Google I/O Extended Bangkok 22)
kajornsakp
0
94
Mobile Design System at scale
kajornsakp
0
150
What's new in Flutter 2020
kajornsakp
0
86
Mobile Machine Learning for All Skill Levels
kajornsakp
0
51
What's new in Flutter 1.9
kajornsakp
0
67
Kotlin meets Web
kajornsakp
0
38
Other Decks in Technology
See All in Technology
誤解だらけの開発生産性 / Myths and Misconceptions about Developer Productivity
i35_267
2
820
「最後に責任を取るのはチーム」— 人間のPRレビューを最小化してアップデートしたメンタルモデル
jnishime_dresscode
0
920
カードゲーム作りが教えてくれた プロダクトオーナーシップ
moritamasami
0
110
ソニー銀行におけるビジネスアジリティ向上のためのクラウドシフト戦略
srenext
0
840
2年前に削除したPHPクラスが、 ある日突然決済をエラーにした
ykagano
1
390
CIで使うClaude
iwatatomoya
0
290
脱金融のフューチャー・デザイン / Future Design Beyond Finance
ks91
PRO
0
160
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
8.4k
AI Driven AI Governance
pict3
0
490
世界、断片、モデル。そして理解
ardbeg1958
1
130
[2026-07-15] AI Ready なはずだったアーキテクチャと、見えてきた課題・次に目指す状態
wxyzzz
9
4k
ボーイスカウトルールでメモリやスキルを改善しよう
azukiazusa1
4
1.5k
Featured
See All Featured
Odyssey Design
rkendrick25
PRO
2
730
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Optimising Largest Contentful Paint
csswizardry
37
3.8k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Code Review Best Practice
trishagee
74
20k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.1k
How to make the Groovebox
asonas
2
2.3k
Code Reviewing Like a Champion
maltzj
528
40k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
770
Docker and Python
trallard
47
4k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Transcript
Bangkok Kajornsak Peerapathananont Senior iOS Developer Speaker Image Placeholder How
to build native-experience with cross-platform
Cross-platform trade offs
Write once, run anywhere
None
Native features
Hardware
Hardware-related features 1. Camera 2. Location access (GPS) 3. Biometrics
4. NFC
Flutter app Plugins iOS Android etc.
iOS
Widgets
None
home_widget - Widget part is native - Shared data via
Flutter
Trackpad
None
Dynamic island
None
None
Android
Widgets
home_widget - Widget part is native - Shared data via
Flutter
Material You (Material 3)
None
Hardware-related features 1. Camera 2. Location access (GPS) 3. Biometrics
4. NFC
Flutter app Plugins iOS Android etc.
Mimic features
Cupertino
None
CupertinoDatePicker
None
Scrollbar
None
Scribble
None
#pragma mark UIIndirectScribbleInteractionDelegate - (BOOL)indirectScribbleInteraction:(UIIndirectScribbleInteraction*)interaction isElementFocused:(UIScribbleElementIdentifier)elementIdentifier API_AVAILABLE(ios(14.0)) { return _activeView.scribbleFocusStatus
== FlutterScribbleFocusStatusFocused; } - (void)indirectScribbleInteraction:(UIIndirectScribbleInteraction*)interaction focusElementIfNeeded:(UIScribbleElementIdentifier)elementIdentifier referencePoint:(CGPoint)focusReferencePoint completion:(void (^)(UIResponder<UITextInput>* focusedInput))completion API_AVAILABLE(ios(14.0)) { _activeView.scribbleFocusStatus = FlutterScribbleFocusStatusFocusing; [_indirectScribbleDelegate flutterTextInputPlugin:self focusElement:elementIdentifier atPoint:focusReferencePoint result:^(id _Nullable result) { _activeView.scribbleFocusStatus = FlutterScribbleFocusStatusFocused; completion(_activeView); }]; } - (BOOL)indirectScribbleInteraction:(UIIndirectScribbleInteraction*)interaction shouldDelayFocusForElement:(UIScribbleElementIdentifier)elementIdentifier API_AVAILABLE(ios(14.0)) { return NO; } - (void)indirectScribbleInteraction:(UIIndirectScribbleInteraction*)interaction willBeginWritingInElement:(UIScribbleElementIdentifier)elementIdentifier API_AVAILABLE(ios(14.0)) { } - (void)indirectScribbleInteraction:(UIIndirectScribbleInteraction*)interaction didFinishWritingInElement:(UIScribbleElementIdentifier)elementIdentifier API_AVAILABLE(ios(14.0)) { }
Quiz time
None
Demo time
Small announcements
32-bit devices are not supported
Minimum iOS version is iOS 11
flutter.dev
None