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.6k
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
1k
モバイルアプリケーション 開発組織の“学び”
d_r_1009
0
330
開発チーム主導で iOSの新機能に対応する 3つのポイント
d_r_1009
0
590
FlutterKaigi2021
d_r_1009
0
1.6k
Flutter?
d_r_1009
0
390
Room2.1 DatabaseView あるある
d_r_1009
0
660
AAC Paging & Kotlin化の紹介
d_r_1009
0
1.2k
JavaからKotlinに書き換えてハマる話
d_r_1009
0
7.6k
CircleCI + fastlaneで快適Androidアプリビルドの巻
d_r_1009
0
1k
Other Decks in Programming
See All in Programming
ISUCON研修おかわり会 講義スライド
arfes0e2b3c
1
460
すべてのコンテキストを、 ユーザー価値に変える
applism118
4
1.4k
Railsアプリケーションと パフォーマンスチューニング ー 秒間5万リクエストの モバイルオーダーシステムを支える事例 ー Rubyセミナー 大阪
falcon8823
5
1.4k
RailsGirls IZUMO スポンサーLT
16bitidol
0
190
ソフトウェア品質を数字で捉える技術。事業成長を支えるシステム品質の マネジメント
takuya542
2
14k
はじめてのWeb API体験 ー 飲食店検索アプリを作ろうー
akinko_0915
0
130
NEWT Backend Evolution
xpromx
1
110
20250628_非エンジニアがバイブコーディングしてみた
ponponmikankan
0
710
PicoRuby on Rails
makicamel
2
140
dbt民主化とLLMによる開発ブースト ~ AI Readyな分析サイクルを目指して ~
yoshyum
3
1.1k
Webの外へ飛び出せ NativePHPが切り拓くPHPの未来
takuyakatsusa
2
580
The Evolution of Enterprise Java with Jakarta EE 11 and Beyond
ivargrimstad
0
180
Featured
See All Featured
Side Projects
sachag
455
42k
How STYLIGHT went responsive
nonsquared
100
5.6k
Into the Great Unknown - MozCon
thekraken
40
1.9k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Fireside Chat
paigeccino
37
3.5k
Site-Speed That Sticks
csswizardry
10
700
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.4k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Documentation Writing (for coders)
carmenintech
72
4.9k
The Cost Of JavaScript in 2023
addyosmani
51
8.5k
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