Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
How to build native-experience with cross-platform
Search
Kajornsak Peerapathananont
October 09, 2022
Technology
46
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
38
Understanding your Android build
kajornsakp
0
68
iOSDevTH #21
kajornsakp
0
65
What's new in Flutter (Google I/O Extended Bangkok 22)
kajornsakp
0
100
Mobile Design System at scale
kajornsakp
0
160
What's new in Flutter 2020
kajornsakp
0
94
Mobile Machine Learning for All Skill Levels
kajornsakp
0
54
What's new in Flutter 1.9
kajornsakp
0
72
Kotlin meets Web
kajornsakp
0
45
Other Decks in Technology
See All in Technology
味覇で作るパスタが美味い - 20261001_yabaubuki.dev
livesense
PRO
0
110
ブラウザとサーバーから考えるAI時代のフロントエンド監視
shogo4131
3
630
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
330
AIに攻撃される前に、AIに攻撃させる
tsuchikazu
0
160
12 個 Tool と、 4,096 Token
hlum
0
110
オブザーバビリティを高める AI エージェント体験を考える / Designing AI Agent Experiences That Enhance Observability
aoto
PRO
2
320
分析AIエージェントを育てる、動く環境を育てる
codatum
1
680
ファミコンでPHPを動かす / PHP on the Famicom side b
tomzoh
0
140
実践! SRE × AI - ABEMA における AIOps -
tetsuya28
7
2.5k
分析の民主化を支えるメタデータ整備の実践
kakehashi
PRO
4
1.2k
Codex概要
ymiya55
0
490
go-sqletch
moznion
0
120
Featured
See All Featured
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
300
Discover your Explorer Soul
emna__ayadi
2
1.3k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
270
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
260
What's in a price? How to price your products and services
michaelherold
247
13k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.8k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
How to build a perfect <img>
jonoalderson
1
6.1k
So, you think you're a good person
axbom
PRO
2
2.2k
For a Future-Friendly Web
brad_frost
184
10k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
620
Abbi's Birthday
coloredviolet
4
10k
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