Upgrade to Pro — share decks privately, control downloads, hide ads and more …

新規アプリ開発を支えるユーザ・決済基盤

2d855b951ff3160c55915821261432f9?s=47 uzzu
February 27, 2019

 新規アプリ開発を支えるユーザ・決済基盤

Cookpad TechConf 2019 登壇資料
https://techconf.cookpad.com/2019/

2d855b951ff3160c55915821261432f9?s=128

uzzu

February 27, 2019
Tweet

Transcript

  1. Ӊ௡ ޺Ұ (@uzzu) Ϣʔβɾܾࡁج൫෦ ৽نΞϓϦ։ൃΛࢧ͑Δ Ϣʔβɾܾࡁج൫

  2. ΞϓϦ ࡞ͬͯ·͔͢ʁ 2

  3. Ϣʔβ؅ཧ/ೝূ 3

  4. ΞϓϦ಺՝ۚ 4

  5. 5

  6. 6

  7. ΫοΫύουͰഓͬͨ Ϣʔβ؅ཧ/ܾࡁϊ΢ϋ΢Λ ༗ޮ׆༻ͯ͠ ৽نΞϓϦ։ൃΛՃ଎͢Δඞཁ͕͋Δ

  8. Cuisine 8

  9. Cuisine/Client 9

  10. Cuisine/Client 10 ϢʔβೝূͱΞϓϦ಺՝ۚػೳͷಋೖΛՃ଎͢Δʹ͸ ɾAPI௨৴࣌ʹࣗಈ࠶ೝূ͢Δ ɾೝূϑϩʔΛΧελϚΠζͰ͖Δ ɾΞϓϦ಺՝ۚ(ఆظߪಡ)Λ؆୯ʹར༻Ͱ͖Δ

  11. API௨৴࣌ʹࣗಈͰ࠶ೝূ͢Δ 11 ɾAPI௨৴࣌ʹೝূॲཧΛͳΔ΂͘ҙࣝͤ͞ͳ͍ ɹೝূࣦഊ࣌ʹ͸ࣗಈͰ࠶ೝূΛ࣮ࢪ ɾ[iOS] APIΫϥΠΞϯτ·ͰؚΊͯఏڙ (APIKit-likeͳܗ) ɾ[Android] OkHttp(HTTPΫϥΠΞϯτϥΠϒϥϦ)ͷར༻Λ ɹલఏͱ্ͨ͠ͰͷඞਢίϯϙʔωϯτΛఏڙ

  12. ೝূϑϩʔΛΧελϚΠζͰ͖Δ 12 ɾStateMachineϕʔεͰͷ࣮૷(StartStateඞਢͳFSM) ɾೝূϑϩʔΛඪ४Ͱ਺ύλʔϯఏڙͯ͠ҰఆͷχʔζΛΧόʔ ɾΧελϚΠζ࣌͸… ɹStateΛఆٛ ɹStateʹରԠ͢ΔActionΛ࣮૷ ɹඪ४ͷϑϩʔΛࢀߟʹStateMachineGraphΛߏங

  13. ΞϓϦ಺՝ۚΛ؆୯ʹར༻Ͱ͖Δ 13 ɾ֤ϓϥοτϑΥʔϜͷΞϓϦ಺՝ۚͷ ɹ࢓༷Λ౿·্͑ͨͰॲཧϑϩʔΛඪ४Խ ɾඪ४ͷॲཧϑϩʔͷϥούʔϥΠϒϥϦΛఏڙ ɾΞϓϦ։ൃऀ͸࠷௿ݶඞཁͳॲཧͷܨ͗ࠐΈ ɹΛ͢Δ͚ͩͰར༻Մೳ ɹ

  14. ΫϥΠΞϯταΠυͷෳࡶ͞Λ ٵऩͯ͠ ৽نΞϓϦ։ൃΛ Ճ଎͢Δ

  15. Cuisine/Server 15

  16. 16 Ϣʔβొ࿥ Cookpad API ܾࡁج൫ Ϣʔβج൫ Reverse Proxy Cookpad App

    (iOS, Android) ༷ʑ
  17. 17 Ϣʔβొ࿥ Cookpad API ܾࡁج൫ Ϣʔβج൫ Reverse Proxy Cookpad App

    (iOS, Android) ༷ʑ New App (iOS, Android, etc…) New App API
  18. 18 Ϣʔβొ࿥ Cookpad API ܾࡁج൫ Ϣʔβ؅ཧ Reverse Proxy Cookpad App

    (iOS, Android) ༷ʑ New App (iOS, Android, etc…) New App API Ϣʔβج൫ $PPLQBEݻ༗ͷػೳΛ ࡌͤͳ͍
  19. 19 Ϣʔβొ࿥ Cookpad API Ϣʔβج൫ Reverse Proxy Cookpad App (iOS,

    Android) ༷ʑ New App API cuisine-api New App (iOS, Android, etc…) ܾࡁج൫ Ϣʔβ؅ཧ ΞϓϦ಺՝ۚఆظߪಡ "1*Λ৽ઃ
  20. 20 Ϣʔβొ࿥ Cookpad API Ϣʔβج൫ Reverse Proxy Cookpad App (iOS,

    Android) ༷ʑ New App API cuisine-api New App (iOS, Android, etc…) ܾࡁج൫ ΞϓϦ಺՝ۚͷ ౎౓՝ۚʹ͍ͭͯ͸ ॲཧϑϩʔͷΈඪ४Խ αʔϏεຖʹ࣮૷
  21. 21 Ϣʔβొ࿥ Cookpad API Ϣʔβج൫ Reverse Proxy Cookpad App (iOS,

    Android) ༷ʑ New App API cuisine-api New App (iOS, Android, etc…) ܾࡁج൫ $PPLQBEͷϦιʔε΋ ࢀরͰ͖Δ
  22. 22 Ϣʔβొ࿥ Cookpad API Ϣʔβج൫ Reverse Proxy Cookpad App (iOS,

    Android) ༷ʑ New App API cuisine-api New App (iOS, Android, etc…) ܾࡁج൫
  23. ※͋͘·Ͱ΋ CookpadͰͷ࣮ફྫ 23

  24. Organized Around Business Capabilities 24

  25. Organized Around Business Capabilities 25 ɾCookpadͷ৽نαʔϏε͸ͦΕͧΕ͕ಠཱͨ͠ϏδωεΛ ɹ΍͍͍ͬͯͬͯΔ ɹ=> Ϣʔβܾࡁج൫ͷҰ൪ͷ੹຿͸ ɹɹʮϢʔβ؅ཧ/ܾࡁػೳΛΑΓૣ͘ಋೖͰ͖ΔΑ͏ʹ͢Δʯ

  26. Organized Around Business Capabilities 26 ɾྫ͑͹ϓϨϛΞϜαʔϏεϢʔβ֫ಘΛ໨తͱͨ͠ ɹ৽نαʔϏεల։ͩͬͨΒ…ʁ ɹ=> Ϗδωεͷओମ͸ΫοΫύουͷձһࣄۀ ɹ=>

    Ϣʔβܾࡁج൫ͷҰ൪ͷ੹຿͸ ɹɹʮΫοΫύουͱ৽نαʔϏεؒͷϢʔβঢ়ଶ/ܾࡁঢ়ଶΛ ɹɹɹෆ੔߹গͳ͘ಉظͰ͖Δج൫αʔϏεΛߏங͢Δʯ
  27. 27 Ϣʔβొ࿥ Cookpad API Ϣʔβ؅ཧ Reverse Proxy Cookpad App (iOS,

    Android) ༷ʑ New App API cuisine-api New App (iOS, Android, etc…) ܾࡁ؅ཧ
  28. 28 ϩάΠϯಋઢ Cookpad API Ϣʔβ؅ཧ Reverse Proxy Cookpad App (iOS,

    Android) ༷ʑ New App API New App (iOS, Android, etc…) ܾࡁ؅ཧ cuisine-api GSPOUFOEʹ͍ۙఔ ϏδωεىҼͰ 4FSWFS"QQͷߏ੒΋੹຿΋ มΘΔ
  29. 29 Ϣʔβొ࿥ Cookpad API Ϣʔβ؅ཧ Reverse Proxy Cookpad App (iOS,

    Android) ༷ʑ New App API New App (iOS, Android, etc…) ܾࡁ؅ཧ طଘͷ"1*ʹ ࣮૷͢Δະདྷ΋͔͋ͬͨ΋
  30. Ϗδωεͷํ޲ੑΛ ೺Ѳ্ͨ͠Ͱ Ϣʔβೝূ/ܾࡁػೳͷಋೖΛ Ճ଎͢Δ

  31. Cuisineͷࠓޙ 31

  32. 32

  33. 33

  34. 34 Ϣʔβొ࿥ Cookpad API Ϣʔβ؅ཧ Reverse Proxy Cookpad App (iOS,

    Android) ༷ʑ New App API cuisine-api New App (iOS, Android, etc…) ܾࡁ؅ཧ $PPLQBE"QQ΋ ಠཱͨ͠Ϗδωε
  35. 35 Cookpad API Ϣʔβ؅ཧ ༷ʑ New App API New App

    (iOS, Android, etc…) ܾࡁ؅ཧ Reverse Proxy Cookpad App (iOS, Android) ߏ૝ஈ֊ cuisine-api
  36. ࣮૷໘Ҏ֎΋ 36 ɾσΟϨΫγϣϯ໘ͷෛ୲ܰݮ༨஍͋Γ ɹಋೖ·ͰͷϩʔυϚοϓ ɹApple৹͓ࠪ࡞๏(঎඼ઃܭ/UIσβΠϯ) ɾςετ߲໨͸ڞ௨ԽͰ͖ͦ͏ ɹಋઢͷ਺Ͱ߲໨਺ͷͿΕ͸͋Δ΋ͷͷ ɹେےมΘΒͳͦ͏

  37. εϥΠυ͔Β͜΅ΕམͪͨτϐοΫ 37 •ΞΧ΢ϯτ౷߹ʹ͍ͭͯ •ΞϓϦ಺՝ۚॲཧϑϩʔͷڞ௨Խৄࡉ •iOS/StoreKitɺAndroid/Google Play IABϊ΢ϋ΢࿩ •Android/Kotlin Multi Platform

    ProjectͰ΍͍͍ͬͯͬͯΔ
 ɹhttps://speakerdeck.com/uzzu/kotlin-mpp-library-tips •ਐԽతΞʔΩςΫνϟͱ͸… ؾܰʹ͓੠ֻ͚͍ͩ͘͞
  38. ͋Γ͕ͱ͏͍͟͝·ͨ͠ @uzzu