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.5k
新規アプリ開発を支えるユーザ・決済基盤
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
530
StoreKitのこれまでとこれから / StoreKit 2 from 1
uzzu
5
8.8k
Autofill Framework
uzzu
0
78
アプリ内課金の最新事情 クライアントサイド編 / In-app Purchase in Cookpad 2019
uzzu
3
4.2k
Billing Client 2.0 acknowledgement
uzzu
0
16k
Promoting IAP対応から学ぶ外部アプリ内課金実装 / Promoting IAP and others
uzzu
2
1.3k
ブログ作り直した / My blog @ Othlo Tech
uzzu
0
110
kotlin-mpp-library-tips
uzzu
1
6.1k
Coroutine Kyuin
uzzu
2
250
Other Decks in Technology
See All in Technology
開発と事業を繋ぐ!SREのオブザーバビリティ戦略 ~ Developers Summit 2024 Summer ~
leveragestech
0
620
楽しくGoを学び合う、LayerXの勉強会文化 / LayerX's study culture of having fun and learning Go together
ar_tama
2
350
GoとアクターモデルでES+CQRSを実践! / proto_actor_es_cqrs
ytake
1
150
ソフトウェアエンジニアリングの知見を活かして データ基盤をいい感じにする on Snowflake [MIERUNE BBQ #10]
mtpooh
2
150
開発生産性をむしろ向上させる セキュリティパートナーの作り方 / Dev Productivity Con 2024
flatt_security
0
360
簡単に始めるSnowflakeの機械学習
nayuts
1
190
20240725 LLMによるDXのビジョンと、今何からやるべきか @Azure OpenAI Service Dev Day
nrryuya
3
1.1k
セキュリティ研修 Day1【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
150
プレイドにおけるDatadog APMの活用方法
plaidtech
PRO
2
120
LINE WORKSへ簡単通知!Incoming Webhookアプリの紹介
mmclsntr
0
110
累計ダウンロード数1億8000万を超えるアプリケーションプラットフォームのレガシーシステム脱却とモダン化への道
kmitsuhashi
0
120
Classmethod流のPlatform Engineering / classmethod-platform-engineering-devio2024
tomoki10
0
470
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
93
5k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
228
16k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
StorybookのUI Testing Handbookを読んだ
zakiyama
15
4.9k
Raft: Consensus for Rubyists
vanstee
134
6.5k
Unsuck your backbone
ammeep
666
57k
Imperfection Machines: The Place of Print at Facebook
scottboms
262
13k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
662
120k
Done Done
chrislema
179
15k
Documentation Writing (for coders)
carmenintech
63
4.2k
Building Adaptive Systems
keathley
34
2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
245
1.2M
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