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
新規アプリ開発を支えるユーザ・決済基盤
Search
uzzu
February 27, 2019
Technology
2
2.7k
新規アプリ開発を支えるユーザ・決済基盤
Cookpad TechConf 2019 登壇資料
https://techconf.cookpad.com/2019/
uzzu
February 27, 2019
Tweet
Share
More Decks by uzzu
See All by uzzu
Context Receiversに思いを馳せる / Context Receivers
uzzu
0
620
StoreKitのこれまでとこれから / StoreKit 2 from 1
uzzu
5
12k
Autofill Framework
uzzu
0
98
アプリ内課金の最新事情 クライアントサイド編 / In-app Purchase in Cookpad 2019
uzzu
3
4.3k
Billing Client 2.0 acknowledgement
uzzu
0
16k
Promoting IAP対応から学ぶ外部アプリ内課金実装 / Promoting IAP and others
uzzu
2
1.4k
ブログ作り直した / My blog @ Othlo Tech
uzzu
0
130
kotlin-mpp-library-tips
uzzu
1
6.2k
Coroutine Kyuin
uzzu
2
270
Other Decks in Technology
See All in Technology
EMConf JP の楽しみ方 / How to enjoy EMConf JP
pauli
2
150
データ基盤におけるIaCの重要性とその運用
mtpooh
4
500
GoogleのAIエージェント論 Authors: Julia Wiesinger, Patrick Marlow and Vladimir Vuskovic
customercloud
PRO
0
150
Visual StudioとかIDE関連小ネタ話
kosmosebi
1
370
AWSサービスアップデート 2024/12 Part3
nrinetcom
PRO
0
140
深層学習と3Dキャプチャ・3Dモデル生成(土木学会応用力学委員会 応用数理・AIセミナー)
pfn
PRO
0
460
JuliaTokaiとJuliaLangJaの紹介 for NGK2025S
antimon2
1
110
30分でわかる「リスクから学ぶKubernetesコンテナセキュリティ」/30min-k8s-container-sec
mochizuki875
3
440
2024AWSで個人的にアツかったアップデート
nagisa53
1
110
.NET AspireでAzure Functionsやクラウドリソースを統合する
tsubakimoto_s
0
190
2025年の挑戦 コーポレートエンジニアの技術広報/techpr5
nishiuma
0
140
カップ麺の待ち時間(3分)でわかるPartyRockアップデート
ryutakondo
0
140
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.7k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Making Projects Easy
brettharned
116
6k
Raft: Consensus for Rubyists
vanstee
137
6.7k
A Tale of Four Properties
chriscoyier
157
23k
For a Future-Friendly Web
brad_frost
176
9.5k
Building Adaptive Systems
keathley
38
2.4k
How STYLIGHT went responsive
nonsquared
96
5.3k
Transcript
Ӊ Ұ (@uzzu) Ϣʔβɾܾࡁج൫෦ ৽نΞϓϦ։ൃΛࢧ͑Δ Ϣʔβɾܾࡁج൫
ΞϓϦ ࡞ͬͯ·͔͢ʁ 2
Ϣʔβཧ/ೝূ 3
ΞϓϦ՝ۚ 4
5
6
ΫοΫύουͰഓͬͨ Ϣʔβཧ/ܾࡁϊϋΛ ༗ޮ׆༻ͯ͠ ৽نΞϓϦ։ൃΛՃ͢Δඞཁ͕͋Δ
Cuisine 8
Cuisine/Client 9
Cuisine/Client 10 ϢʔβೝূͱΞϓϦ՝ۚػೳͷಋೖΛՃ͢Δʹ ɾAPI௨৴࣌ʹࣗಈ࠶ೝূ͢Δ ɾೝূϑϩʔΛΧελϚΠζͰ͖Δ ɾΞϓϦ՝ۚ(ఆظߪಡ)Λ؆୯ʹར༻Ͱ͖Δ
API௨৴࣌ʹࣗಈͰ࠶ೝূ͢Δ 11 ɾAPI௨৴࣌ʹೝূॲཧΛͳΔ͘ҙࣝͤ͞ͳ͍ ɹೝূࣦഊ࣌ʹࣗಈͰ࠶ೝূΛ࣮ࢪ ɾ[iOS] APIΫϥΠΞϯτ·ͰؚΊͯఏڙ (APIKit-likeͳܗ) ɾ[Android] OkHttp(HTTPΫϥΠΞϯτϥΠϒϥϦ)ͷར༻Λ ɹલఏͱ্ͨ͠ͰͷඞਢίϯϙʔωϯτΛఏڙ
ೝূϑϩʔΛΧελϚΠζͰ͖Δ 12 ɾStateMachineϕʔεͰͷ࣮(StartStateඞਢͳFSM) ɾೝূϑϩʔΛඪ४Ͱύλʔϯఏڙͯ͠ҰఆͷχʔζΛΧόʔ ɾΧελϚΠζ࣌… ɹStateΛఆٛ ɹStateʹରԠ͢ΔActionΛ࣮ ɹඪ४ͷϑϩʔΛࢀߟʹStateMachineGraphΛߏங
ΞϓϦ՝ۚΛ؆୯ʹར༻Ͱ͖Δ 13 ɾ֤ϓϥοτϑΥʔϜͷΞϓϦ՝ۚͷ ɹ༷Λ౿·্͑ͨͰॲཧϑϩʔΛඪ४Խ ɾඪ४ͷॲཧϑϩʔͷϥούʔϥΠϒϥϦΛఏڙ ɾΞϓϦ։ൃऀ࠷ݶඞཁͳॲཧͷܨ͗ࠐΈ ɹΛ͢Δ͚ͩͰར༻Մೳ ɹ
ΫϥΠΞϯταΠυͷෳࡶ͞Λ ٵऩͯ͠ ৽نΞϓϦ։ൃΛ Ճ͢Δ
Cuisine/Server 15
16 Ϣʔβొ Cookpad API ܾࡁج൫ Ϣʔβج൫ Reverse Proxy Cookpad App
(iOS, Android) ༷ʑ
17 Ϣʔβొ Cookpad API ܾࡁج൫ Ϣʔβج൫ Reverse Proxy Cookpad App
(iOS, Android) ༷ʑ New App (iOS, Android, etc…) New App API
18 Ϣʔβొ Cookpad API ܾࡁج൫ Ϣʔβཧ Reverse Proxy Cookpad App
(iOS, Android) ༷ʑ New App (iOS, Android, etc…) New App API Ϣʔβج൫ $PPLQBEݻ༗ͷػೳΛ ࡌͤͳ͍
19 Ϣʔβొ Cookpad API Ϣʔβج൫ Reverse Proxy Cookpad App (iOS,
Android) ༷ʑ New App API cuisine-api New App (iOS, Android, etc…) ܾࡁج൫ Ϣʔβཧ ΞϓϦ՝ۚఆظߪಡ "1*Λ৽ઃ
20 Ϣʔβొ Cookpad API Ϣʔβج൫ Reverse Proxy Cookpad App (iOS,
Android) ༷ʑ New App API cuisine-api New App (iOS, Android, etc…) ܾࡁج൫ ΞϓϦ՝ۚͷ ՝ۚʹ͍ͭͯ ॲཧϑϩʔͷΈඪ४Խ αʔϏεຖʹ࣮
21 Ϣʔβొ Cookpad API Ϣʔβج൫ Reverse Proxy Cookpad App (iOS,
Android) ༷ʑ New App API cuisine-api New App (iOS, Android, etc…) ܾࡁج൫ $PPLQBEͷϦιʔε ࢀরͰ͖Δ
22 Ϣʔβొ Cookpad API Ϣʔβج൫ Reverse Proxy Cookpad App (iOS,
Android) ༷ʑ New App API cuisine-api New App (iOS, Android, etc…) ܾࡁج൫
※͋͘·Ͱ CookpadͰͷ࣮ફྫ 23
Organized Around Business Capabilities 24
Organized Around Business Capabilities 25 ɾCookpadͷ৽نαʔϏεͦΕͧΕ͕ಠཱͨ͠ϏδωεΛ ɹ͍͍ͬͯͬͯΔ ɹ=> Ϣʔβܾࡁج൫ͷҰ൪ͷ ɹɹʮϢʔβཧ/ܾࡁػೳΛΑΓૣ͘ಋೖͰ͖ΔΑ͏ʹ͢Δʯ
Organized Around Business Capabilities 26 ɾྫ͑ϓϨϛΞϜαʔϏεϢʔβ֫ಘΛతͱͨ͠ ɹ৽نαʔϏεల։ͩͬͨΒ…ʁ ɹ=> ϏδωεͷओମΫοΫύουͷձһࣄۀ ɹ=>
Ϣʔβܾࡁج൫ͷҰ൪ͷ ɹɹʮΫοΫύουͱ৽نαʔϏεؒͷϢʔβঢ়ଶ/ܾࡁঢ়ଶΛ ɹɹɹෆ߹গͳ͘ಉظͰ͖Δج൫αʔϏεΛߏங͢Δʯ
27 Ϣʔβొ Cookpad API Ϣʔβཧ Reverse Proxy Cookpad App (iOS,
Android) ༷ʑ New App API cuisine-api New App (iOS, Android, etc…) ܾࡁཧ
28 ϩάΠϯಋઢ Cookpad API Ϣʔβཧ Reverse Proxy Cookpad App (iOS,
Android) ༷ʑ New App API New App (iOS, Android, etc…) ܾࡁཧ cuisine-api GSPOUFOEʹ͍ۙఔ ϏδωεىҼͰ 4FSWFS"QQͷߏ มΘΔ
29 Ϣʔβొ Cookpad API Ϣʔβཧ Reverse Proxy Cookpad App (iOS,
Android) ༷ʑ New App API New App (iOS, Android, etc…) ܾࡁཧ طଘͷ"1*ʹ ࣮͢Δະདྷ͔͋ͬͨ
ϏδωεͷํੑΛ Ѳ্ͨ͠Ͱ Ϣʔβೝূ/ܾࡁػೳͷಋೖΛ Ճ͢Δ
Cuisineͷࠓޙ 31
32
33
34 Ϣʔβొ Cookpad API Ϣʔβཧ Reverse Proxy Cookpad App (iOS,
Android) ༷ʑ New App API cuisine-api New App (iOS, Android, etc…) ܾࡁཧ $PPLQBE"QQ ಠཱͨ͠Ϗδωε
35 Cookpad API Ϣʔβཧ ༷ʑ New App API New App
(iOS, Android, etc…) ܾࡁཧ Reverse Proxy Cookpad App (iOS, Android) ߏஈ֊ cuisine-api
࣮໘Ҏ֎ 36 ɾσΟϨΫγϣϯ໘ͷෛ୲ܰݮ༨͋Γ ɹಋೖ·ͰͷϩʔυϚοϓ ɹApple৹͓ࠪ࡞๏(ઃܭ/UIσβΠϯ) ɾςετ߲ڞ௨ԽͰ͖ͦ͏ ɹಋઢͷͰ߲ͷͿΕ͋Δͷͷ ɹେےมΘΒͳͦ͏
εϥΠυ͔Β͜΅ΕམͪͨτϐοΫ 37 •ΞΧϯτ౷߹ʹ͍ͭͯ •ΞϓϦ՝ۚॲཧϑϩʔͷڞ௨Խৄࡉ •iOS/StoreKitɺAndroid/Google Play IABϊϋ •Android/Kotlin Multi Platform
ProjectͰ͍͍ͬͯͬͯΔ ɹhttps://speakerdeck.com/uzzu/kotlin-mpp-library-tips •ਐԽతΞʔΩςΫνϟͱ… ؾܰʹֻ͓͚͍ͩ͘͞
͋Γ͕ͱ͏͍͟͝·ͨ͠ @uzzu