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
穢れた技術選定について
watany
17
5.6k
シンガポールで登壇してきます
yama3133
0
250
企業でAWS Organizationsを動かすための組織設計の考え方
nrinetcom
PRO
1
110
AI時代のPlaywright活用(システムテストを自動化する ー 実行エンジンにPla ywrightを選んだ理由)
ynisqa1988
1
560
Playwright × AI Agent でE2Eテストはどう変わるか AI駆動テストの可能性と実用検証の結果
taiga7543
1
420
知らん間に、回ってる
ming_ayami
0
730
関数型の考えを TypeScript に持ち込んで、テストしやすい純粋関数を増やす / Pure at the Core, Effects at the Edge: Bringing Functional Thinking into TypeScript
kaminashi
2
130
個人開発で育てる「大規模設計の苗床」 - AI時代の1人開発から始める業務への知識接続 / The Seedbed for Large-Scale Design - From AI-Era Solo Projects to Professional Knowledge
bitkey
PRO
1
280
LLM/Agent評価:トップ営業の発言を「正解」にする 〜暗黙的正解による評価を営業資産に変える〜
takkuhiro
1
230
Compose 新機能総まとめ / What's New in Jetpack Compose
yanzm
0
320
AI x 開発生産性を取り巻く予算戦略と投資対効果
i35_267
1
130
インフラと開発の垣根を超えていき!〜元AWSインフラエンジニアがAWS開発で奮闘している話〜
hatahata021
3
300
Featured
See All Featured
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
350
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
660
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.3k
How to make the Groovebox
asonas
2
2.3k
How STYLIGHT went responsive
nonsquared
100
6.2k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Discover your Explorer Soul
emna__ayadi
2
1.2k
Skip the Path - Find Your Career Trail
mkilby
1
170
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.6k
Crafting Experiences
bethany
1
220
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