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
Add-to-appの戦い方
Search
Koji Wakamiya
October 06, 2022
Programming
0
1.7k
Add-to-appの戦い方
Koji Wakamiya
October 06, 2022
Tweet
Share
More Decks by Koji Wakamiya
See All by Koji Wakamiya
Flutterコントリビューションのススメ
d_r_1009
1
230
人気サービスをFlutter Webでリプレースするとどうなるのか
d_r_1009
0
1.1k
モバイルアプリケーション 開発組織の“学び”
d_r_1009
0
360
開発チーム主導で iOSの新機能に対応する 3つのポイント
d_r_1009
0
630
FlutterKaigi2021
d_r_1009
0
1.7k
Flutter?
d_r_1009
0
410
Room2.1 DatabaseView あるある
d_r_1009
0
690
AAC Paging & Kotlin化の紹介
d_r_1009
0
1.3k
JavaからKotlinに書き換えてハマる話
d_r_1009
0
7.7k
Other Decks in Programming
See All in Programming
Vue 3.6 時代のリアクティビティ最前線 〜Vapor/alien-signals の実践とパフォーマンス最適化〜
hiranuma
2
420
React Nativeならぬ"Vue Native"が実現するかも?_新世代マルチプラットフォーム開発フレームワークのLynxとLynxのVue.js対応を追ってみよう_Vue Lynx
yut0naga1_fa
2
2.1k
予防に勝る防御なし(2025年版) - 堅牢なコードを導く様々な設計のヒント / Growing Reliable Code PHP Conference Fukuoka 2025
twada
PRO
33
11k
CSC509 Lecture 09
javiergs
PRO
0
290
NIKKEI Tech Talk#38
cipepser
0
430
GitHub Copilotを使いこなせ!/mastering_github_copilot!
kotakageyama
2
870
なんでRustの環境構築してないのにRust製のツールが動くの? / Why Do Rust-Based Tools Run Without a Rust Environment?
ssssota
15
48k
ノーコードからの脱出 -地獄のデスロード- / Escape from Base44
keisuke69
0
660
Kotlinで実装するCPU/GPU 「協調的」パフォーマンス管理
matuyuhi
0
330
AI駆動開発カンファレンスAutumn2025 _AI駆動開発にはAI駆動品質保証
autifyhq
0
130
AI POSにおけるLLM Observability基盤の導入 ― サイバーエージェントDXインターン成果報告
hekuchan
0
430
Swift Concurrency 年表クイズ
omochi
3
220
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
49
14k
The Language of Interfaces
destraynor
162
25k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Building Adaptive Systems
keathley
44
2.8k
Leading Effective Engineering Teams in the AI Era
addyosmani
8
1k
Designing for humans not robots
tammielis
254
26k
RailsConf 2023
tenderlove
30
1.3k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Transcript
Add-to-appͷઓ͍ํ @koji-1009 1
DroidKaigi 2
ࣗݾհ • एٶߒ࢘/@koji-1009(GitHub) • ελσΟϓϥεגࣜձࣾ ◦ ϞόΠϧΫϥΠΞϯτνʔϜ ςοΫϦʔυ • Google
for Startups Accelerator 2022 3
ελσΟϓϥεגࣜձࣾ • Mission ◦ ֶͿتͼΛͯ͢ͷਓ • Value ◦ Dive to
Learn - ֶशऀͷͨΊʹΖ͏ ◦ Fail Forward - ͲΜͲΜࣦഊ͠Α͏ ◦ Far Together - ҧ͍ʹ༰Ͱ͋Ζ͏ 4
5 Studyplus • ֶशهΛ࡞͠ɺߘ͢Δ͜ ͱͰֶͼͷܧଓΛαϙʔτ • ిࢠ൛ͷֶशࢀߟॻ200Ҏ্ ͕͍์ɺʰStudyplusϒοΫ ಡΈ์ʱఏڙத
6 Studyplus for School • ઌੜ͕ੜెͷʑͷษڧΛα ϙʔτͰ͖Δɺֶशཧϓϥο τϑΥʔϜ • toB͚ʹɺֶߍֶशक़ͳͲ
ʹ͚ͯల։
StudyplusͱAdd-to-app • 20218݄͝Ζ͔Βར༻ • ʰStudyplusϒοΫಡΈ์ʱͷॻ੶ϏϡʔΞʔͰ࠾༻ ◦ ࠷ॳFlutterΞϓϦέʔγϣϯ͚ʹ։ൃ ◦ ϏϡʔΞʔػೳΛStudyplusʹ౷߹͢Δʹ͋ͨΓɺ Add-to-appͰAndroidͱiOSΞϓϦέʔγϣϯʹՃ
7
࣍ • ຊηογϣϯʹ͍ͭͯ • Add-to-appͱ • Add-to-appͷϝϦοτ • Add-to-appͷσϝϦοτ •
Add-to-appͷઓ͍ํ 8
ຊηογϣϯͰհ͢Δൣғ • Flutter ◦ ΄΅ղઆ͠·ͤΜ ◦ 2022.11ʹFlutterKaigi͕։࠵͞Ε·͢ • Add-to-app ◦
ηογϣϯͷཧղʹඞཁͳൣғͰղઆ͠·͢ ◦ ࡉ͔ͳFlutterͷGitHub Issue͔ηογϣϯͷ࣭ʹͯ 9
ຊηογϣϯͷର • FlutterʹΑΔΞϓϦέʔγϣϯΛ͢Ͱʹ։ൃ͍ͯ͠Δ • Add-to-appΛ͢Ͱʹ࠾༻͍ͯ͠Δ • Add-to-appͷ࠾༻Λݕ౼͍ͯ͠Δ • Jetpack ComposeͱAdd-to-appͷͲͪΒΛ࠾༻͢Δ͔ΜͰ͍Δ
10
ຊηογϣϯͷର • FlutterʹΑΔΞϓϦέʔγϣϯΛ͢Ͱʹ։ൃ͍ͯ͠Δ • Add-to-appΛ͢Ͱʹ࠾༻͍ͯ͠Δ • Add-to-appͷ࠾༻Λݕ౼͍ͯ͠Δ • Jetpack ComposeͱAdd-to-appͷͲͪΒΛ࠾༻͢Δ͔ΜͰ͍Δ
11
ຊηογϣϯͷత Add-to-appΛར༻ͨ͠ΞϓϦέʔγϣϯ։ൃʹ͍ͭͯɺ ͭ·ΓAdd-to-appͷઓ͍ํʹ͍ͭͯհ͠·͢ 12
2022ݱࡏʹAdd-to-appΛݕ౼͢Δࣄ • એݴతUIΛಋೖ͍ͨ͠ • Material DesignΛiOSͰ͍͍ͨ 13
2022ݱࡏʹAdd-to-appΛݕ౼͢Δࣄ • એݴతUIΛಋೖ͍ͨ͠ ◦ Jetpack Compose/SwiftUIͰΑ͍ͷͰ……? • Material DesignΛiOSͰ͍͍ͨ ◦
iOS͚ͳΒHIGʹ४ڌͨ͠ํ͕Α͍ͷͰ……? ◦ (iOS͚ͷMDCͷ։ൃ͕ऴྃͨ͠ͷͰɺΞϦͱ͍͑ΞϦ) 14
2022ݱࡏʹAdd-to-appΛݕ౼͢Δࣄ • FlutterͰϦϓϨʔε͢ΔͷͰɺஈ֊తͳಋೖΛߦ͍͍ͨ • ෳϓϥοτϑΥʔϜ͚ͷΞϓϦέʔγϣϯʹɺ ୯ҰͷιʔείʔυͰػೳΛ։ൃ͍ͨ͠ 15
Add-to-appͱ 16
Add-to-appͷ֓ཁ • FlutterͷViewΛAndroidiOSΞϓϦέʔγϣϯʹΈࠐΊΔػೳ • FlutterActivity/FlutterFragmentΛJava/Kotlin͔Βݺͼग़͠ ◦ AARΛFlutterͰ࡞͠Gradleܦ༝ͰಡΈࠐΈ ◦ iOSͷ߹CocoaPodsܦ༝ͰಡΈࠐΈ ▪
https://github.com/flutter/flutter/issues/33850 ◦ ͦΕҎ֎ͷํ๏ެࣜυΩϡϝϯτ ▪ https://docs.flutter.dev/development/add-to-app 17
Add-to-appͷ֓ཁ • Add-to-appͱ௨ৗͷFlutterΞϓϦέʔγϣϯ΄΅ಉ͡ ◦ AndroidΞϓϦέʔγϣϯͰFlutterΛද͍ࣔͯ͠Δ͚ͩ • FlutterͱJava/KotlinͷؒͰPlatform ChannelΛར༻ ◦ Flutter͔ΒAndroidiOSͷػೳΛݺͼग़͢Έ
◦ JSONܗࣜͷStringΛར༻͢Εେͷ͜ͱՄೳ ◦ Pigeon ▪ https://pub.dev/packages/pigeon 18
Add-to-appͷ֓ཁ • ϓϥάΠϯͷґଘؔͷ͜͠͞ ◦ ωΠςΟϒΞϓϦέʔγϣϯͱɺAdd-to-appͷ྆ํ͕ґଘ͢Δ ◦ όʔδϣϯͷ߹ੑ͕औΕΔঢ়ଶʹ͢Δඞཁ͕ੜ͡Δ ▪ ྫ͑FirebaseΛಋೖ͢Δ߹ ▪
ωΠςΟϒͱAdd-to-appͰಉ͡ϥΠϒϥϦΛࢀর͢Δέʔε 19
Add-to-appͷ֓ཁ • Add-to-appͷқ ◦ લड़ͷࣝͱFlutterͷ͕ࣝ͋Ε࢝ΊΒΕΔ ◦ FlutterΛஈ֊తʹಋೖ͢Δख๏ͱͯ͠࠷ద 20
Add-to-appͷϝϦοτ 21
Add-to-appͷϝϦοτ • ϩδοΫͷڞ௨ԽʹΑΔɺ༷ɾ࣮ɾݕূίετͷݮ • ϓϥοτϑΥʔϜ͝ͱͰͳ͘ɺػೳ͝ͱͷ୲νʔϜ • FlutterΛ࠾༻͢ΔϦεΫ՝ͷݕূΛɺখ࢝͘͞ΊΒΕΔ 22
༷ɾ࣮ɾݕূίετͷݮ • ϓϥοτϑΥʔϜ͝ͱͷ࡞ۀ͕ෆཁʹͳΔέʔε͕͋Δ ◦ ϓϥοτϑΥʔϜʹ߹Θͤͨػೳը໘σβΠϯ ◦ KotlinͱSwiftͰߦ͍࣮ͬͯͨ ◦ ϓϥοτϑΥʔϜࠩҟ͕Έࠐ·Εͨݕূϑϩʔ 23
ػೳ͝ͱͷ୲νʔϜ • ػೳʹରͯ͠ϓϥοτϑΥʔϜ͝ͱͷ୲ऀͰͳ͘ɺ ػೳʹରͯ͠ͷ୲ऀΛஔ͘͜ͱ͕Ͱ͖Δ ◦ ։ൃऀ͕ػೳͷ࣮ݱʹΛ࣋ͪ͘͢ͳΔ 24
FlutterΛ࠾༻͢ΔϦεΫ՝ͷݕূ • Flutterͷ࠾༻Ͱൃੜ͢Δ՝ʹؾͮ͘͜ͱ͕Ͱ͖Δ ◦ ϏδωεతʹɺωΠςΟϒͷSDKʹڧ͘ґଘ͍ͯ͠Δ͔ ◦ ΞϓϦέʔγϣϯతʹɺύϑΥʔϚϯε͕ඇৗʹγϏΞ͔ ◦ ։ൃνʔϜతʹɺFlutterΛֶͿ͜ͱ͕͍͔͠ 25
Add-to-appͷσϝϦοτ 26
Add-to-appͷσϝϦοτ • FlutterΞϓϦέʔγϣϯͱͷৼΔ͍ࠩҟ • Add-to-appͷΞοϓσʔτΕ • Ϗϧυ࣌ؒ(ൃੜ࣌ͷ)ௐࠪίετ૿Ճ 27
FlutterΞϓϦέʔγϣϯͱͷৼΔ͍ࠩҟ • Flutter EngineͷΩϟογϡʹΑΔӨڹ ◦ Ωϟογϡ͢ΔͱʰAdd-to-appͷView͕දࣔ͞Ε͍ͯͳ͍ʱ࣌ɺ Add-to-appͷView͕อ࣋͞ΕΔΑ͏ʹͳΔ ◦ ը໘Λดͯ͡dispose͞Εͳ͍ͷͰɺঢ়ଶཧʹ͕ඞཁ •
Ωϟογϡ͕ͳ͚Ε·ͣੜ͡ͳ͍ ◦ Ωϟογϡ͠ͳ͍߹ɺ্ཱ͕ͪ͛࣌ؒ͘ͳΔ 28
Add-to-appͷΞοϓσʔτΕ • Flutter͚ʹ։ൃ͞Εͨػೳ͕ɺAdd-to-appʹө͞ΕΔͷ͕͍ ◦ ίʔυςϯϓϨʔτͳͲɺݟಀ͞Ε͕ͪͳ͕Ε͍͢ ◦ Add-to-appͰݹ͍Kotlinʹґଘ͢ΔPluginΛར༻͢Δͱɺ ϏϧυͰ͖ͳ͍ͳͲ͕ൃੜ͢Δ͜ͱ͕͋Δ ▪ https://github.com/flutter/flutter/issues/100613
29
Ϗϧυ࣌ؒௐࠪίετͷ૿Ճ • Add-to-appΛಋೖ͢Δ͜ͱͰɺ໌֬ʹϏϧυ͕࣌ؒ૿Ճ͢Δ ◦ ґଘϥΠϒϥϦ͕૿͑Δ ◦ ΞϓϦέʔγϣϯαΠζ૿Ճ͢Δ • ෆ۩߹ௐ͕͍ࠪ͠έʔε͕ଘࡏ͢Δ ◦
ωΠςΟϒAPIΛར༻͍ͯ͠Δέʔε ◦ AndroidɺiOSͷͲͪΒ͔ͷΈͰൃੜ͢Δέʔε 30
Add-to-appͷઓ͍ํ 31
Add-to-appͷઓ͍ํ • લఏ݅Λݕ౼͢Δ • ݮίετͱ૿ՃίετΛѲ͢Δ • Add-to-appͷະདྷΛ࡞Δ 32
લఏ݅Λݕ౼͢Δ • Add-to-app͕༗ޮͳέʔεʹ͍֘ͯ͠Δ͔ ◦ AndroidɺiOS͚ͷطଘΞϓϦ͕͋Δ͔ ◦ ෳϓϥοτϑΥʔϜ͚ͷ։ൃ͕ɺෛ୲͔Ͳ͏͔ • νʔϜϏϧσΟϯά͕తͷ߹ɺҰߟͷ༨͋Γ 33
ݮίετͱ૿ՃίετΛѲ͢Δ • ݮίετ ◦ ։ൃɺFlutterͰ։ൃͨ͠ػೳͷݕূ ◦ ։ൃʹؔΘΔίϛϡχέʔγϣϯͷෛ୲ • ૿Ճίετ ◦
ΞϓϦέʔγϣϯαΠζɺϏϧυ࣌ؒ ◦ FlutterͷֶशɺAdd-to-appͷΩϟονΞοϓ 34
Add-to-appͷະདྷΛ࡞Δ • Add-to-appͷχʔζ͕͋Δ͜ͱΛࣔ͞ͳ͚ΕͳΒͳ͍ ◦ Add-to-app׆༻ࣄྫͷެදɺΞϯέʔτͰͷճ ◦ GitHub Issueͷ࡞upvoteʹΑΔҙࢥͷද໌ • Add-to-appܾͯ͠ओྲྀʹͳΒͳ͍ٕज़
35
Add-to-appͷະདྷΛ࡞Δ • Add-to-appͷχʔζ͕͋Δ͜ͱΛࣔ͞ͳ͚ΕͳΒͳ͍ ◦ Add-to-app׆༻ࣄྫͷެදɺΞϯέʔτͰͷճ ◦ GitHub Issueͷ࡞upvoteʹΑΔҙࢥͷද໌ • Add-to-appܾͯ͠ओྲྀʹͳΒͳ͍ٕज़
◦ ͋͘·Ͱաظʹར༻͢Δͷͱଊ͑Δ͖ 36
·ͱΊ • Add-to-appͷ࠾༻ͷతΛ໌֬ʹ • Flutter͕։ൃ͢ΔΞϓϦέʔγϣϯʹ߹க͢Δ͔ཁݕূ ◦ Add-to-appͰখ࢝͘͞ΊΔͷྑ͍બ ◦ Add-to-appʹΑΔίετ૿༧Ίݕ౼͓͖ͯ͘͠ •
Add-to-appศར͕ͩɺ࠷దͳબࢶͱݶΒͳ͍ ◦ Add-to-appΛղফ͢Δܭըཱͯͨํ͕ྑ͍ • Add-to-appͷ࠾༻ࣄྫݟͷڞ༗ੵۃతʹ 37
Thanks! 38