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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Kajornsak Peerapathananont
October 09, 2022
Technology
47
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
41
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
110
Mobile Design System at scale
kajornsakp
0
160
What's new in Flutter 2020
kajornsakp
0
95
Mobile Machine Learning for All Skill Levels
kajornsakp
0
56
What's new in Flutter 1.9
kajornsakp
0
72
Kotlin meets Web
kajornsakp
0
46
Other Decks in Technology
See All in Technology
Technical Project Manager の役割とやりがい、少しだけ AI
yoshiiryo1
0
390
cdk deployとcdkd deploy、実際にデプロイして5倍速近くの差を実測した
yama3133
1
130
自律的なチームを作るためにTechPMがやらないこと
ny7760
0
270
Jev の中身は50行で再現できる。でも本物との差はどこにあるのか
hisuzuya
0
220
Flutter Webを「SDK」として配る — 50以上のゲームを支える埋め込みアーキテクチャ
masayukisuda
0
160
AI時代の開発はウォーターフォールに回帰する? / development-with-ai-back-to-wf
okamototakuyasr2
0
160
AI時代、つくる力を自分たちの手に。 ──電通×KAG、アジャイルとAI駆動開発で挑む開発の変革
yuukiyo
3
440
Claude for Google Workspaces ポン出し/claude-for-google-workspace-slide-conversion
emiki
0
13k
基本から分かる!AWSセキュリティ運用の考え方と任せ方
cmusudakeisuke
1
260
あなたのDartコードは丸見えかもしれない ~reFlutterで暴くFlutterアプリの中身と多層防御~
zozotech
PRO
0
710
Draft AIエージェントの トークン消費を最小化する 8つの原則
kinopeee
6
1.9k
You Have Agency(サンキュー、Ruby)
snoozer05
PRO
4
610
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Skip the Path - Find Your Career Trail
mkilby
1
270
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
1k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1.1k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
70
68k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
600
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
What's in a price? How to price your products and services
michaelherold
247
13k
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