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.8k
新規アプリ開発を支えるユーザ・決済基盤
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
710
StoreKitのこれまでとこれから / StoreKit 2 from 1
uzzu
5
18k
Autofill Framework
uzzu
0
130
アプリ内課金の最新事情 クライアントサイド編 / In-app Purchase in Cookpad 2019
uzzu
3
4.5k
Billing Client 2.0 acknowledgement
uzzu
0
17k
Promoting IAP対応から学ぶ外部アプリ内課金実装 / Promoting IAP and others
uzzu
2
1.5k
ブログ作り直した / My blog @ Othlo Tech
uzzu
0
170
kotlin-mpp-library-tips
uzzu
1
6.4k
Coroutine Kyuin
uzzu
2
290
Other Decks in Technology
See All in Technology
今改めてServiceクラスについて考える 〜あるRails開発者の10年〜
joker1007
20
9.4k
データエンジニアがこの先生きのこるには...?
10xinc
0
420
Why React!?? Next.jsそしてReactを改めてイチから選ぶ
ypresto
10
3.8k
タスクって今どうなってるの?3.14の新機能 asyncio ps と pstree でasyncioのデバッグを (PyCon JP 2025)
jrfk
1
140
Green Tea Garbage Collector の今
zchee
PRO
2
360
PyCon JP 2025 DAY1 「Hello, satellite data! ~Pythonではじめる衛星データ解析~」
ra0kley
0
830
KAGのLT会 #8 - 東京リージョンでGAしたAmazon Q in QuickSightを使って、報告用の資料を作ってみた
0air
0
190
BtoBプロダクト開発の深層
16bitidol
0
140
Goを使ってTDDを体験しよう!
chiroruxx
1
240
動画データのポテンシャルを引き出す! Databricks と AI活用への奮闘記(現在進行形)
databricksjapan
0
120
API提供者のためのMCPサーバー設計ガイド / MCP Server Design Guide for API Providers
yokawasa
0
240
全てGoで作るP2P対戦ゲーム入門
ponyo877
3
1.2k
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
How GitHub (no longer) Works
holman
315
140k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Designing for humans not robots
tammielis
254
25k
For a Future-Friendly Web
brad_frost
180
9.9k
Gamification - CAS2011
davidbonilla
81
5.5k
Typedesign – Prime Four
hannesfritz
42
2.8k
Rails Girls Zürich Keynote
gr2m
95
14k
4 Signs Your Business is Dying
shpigford
185
22k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
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