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.1k
Add-to-appの戦い方
Koji Wakamiya
October 06, 2022
Tweet
Share
More Decks by Koji Wakamiya
See All by Koji Wakamiya
人気サービスをFlutter Webでリプレースするとどうなるのか
d_r_1009
0
700
モバイルアプリケーション 開発組織の“学び”
d_r_1009
0
220
開発チーム主導で iOSの新機能に対応する 3つのポイント
d_r_1009
0
470
FlutterKaigi2021
d_r_1009
0
1.3k
Flutter?
d_r_1009
0
270
Room2.1 DatabaseView あるある
d_r_1009
0
500
AAC Paging & Kotlin化の紹介
d_r_1009
0
1k
JavaからKotlinに書き換えてハマる話
d_r_1009
0
7.2k
CircleCI + fastlaneで快適Androidアプリビルドの巻
d_r_1009
0
790
Other Decks in Programming
See All in Programming
try!Swift Tokyo 2024 参加報告 LT
akidon0000
1
210
Amazon SQSコンシューマー疎結合への旅 - 出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 #3
quiver
0
220
Goのエラースタックトレースの歴史と今後
sonatard
6
550
1인 개발자로 행복하게 살기 - GDG 송도 헬로월드 2024
benjaminkim
1
5.6k
今、知っておきたい! 生成AIエージェントの世界
elith
3
350
Zero Waste, Radical Magic, and Italian Graft – Quarkus Efficiency Secrets
hollycummins
0
230
大規模Reactアプリのリアーキテクチャ~8万行のTanStack Query移行の軌跡~
kj455
4
920
Rubyでたのしむクリエイティブコーディング/Enjoy Creative coding with Ruby
chobishiba
1
170
Goのmultiple errorsについて (2024年4月版)
syumai
1
310
見た目から始める生産性向上
ikumatadokoro
7
740
Java 22 Overview
kishida
1
180
チーム力を高めるスクラム実践法:カンバン公開と課題攻略について - ニフティのスクラムトーク Vol. 2 - NIFTY Tech Talk #18
niftycorp
PRO
1
110
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
The Language of Interfaces
destraynor
151
23k
For a Future-Friendly Web
brad_frost
171
8.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
20
1.6k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
13
1.5k
Side Projects
sachag
451
41k
Making Projects Easy
brettharned
108
5.5k
Unsuck your backbone
ammeep
662
57k
We Have a Design System, Now What?
morganepeng
42
6.7k
Raft: Consensus for Rubyists
vanstee
132
6.3k
It's Worth the Effort
3n
180
27k
Into the Great Unknown - MozCon
thekraken
10
990
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