アプリ内課金の最新事情 クライアントサイド編 / In-app Purchase in Cookpad 2019
by
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
アプリ内課金の最新事情 (クライアントサイド編) Cookpad Tech Kitchen #22 @uzzu
Slide 2
Slide 2 text
自己紹介 •宇津宏一 @uzzu •クライアントサイド開発 がメイン •2017年4月 入社 •Design It!は良い本なの で読みましょう
Slide 3
Slide 3 text
まとめ •Cookpadアプリではアプリ内課金の定期購読機能の新機能 を早期に取り入れる動きがある •Cookpadアプリ以外でも新機能を使いたいので、そのノウ ハウを集約する形でCuisineプロジェクトが存在している、 というのが現状 •CuisineをCookpadアプリにも導入し、新規問わずサービス 開発を加速させるのが今後のミッション
Slide 4
Slide 4 text
Agenda •アプリ内課金機能の利用状況 •Cuisine(iOS, Android)の技術スタックと理由 •所感と直近のミッション
Slide 5
Slide 5 text
アプリ内課金機能の利用状況 •定期購入機能の利用がメイン •cookpadLiveでは都度課金機能を利用している時期も あった(現在は終了) •non-Consumable(都度課金/買い切り)以外は運用実績 がある
Slide 6
Slide 6 text
Cookpadアプリの速 •iOS: Promoting IAP, Promotional Offers(予定) •Android: Defer billing, Grace period, Acknowledgement •技術調査は発表後即(みんな新機能が大好き) •導入仕様検討や試作はbeta段階〜OSリリース直後 •使用していないものは未検討ではなく意図的なものがほとん ど
Slide 7
Slide 7 text
Cookpadアプリの速 •個別のノウハウは随時アウトプットしてるので そちらをどうぞ - クックパッド開発者ブログ - https://techlife.cookpad.com/ - connpassのイベントページに登壇資料のリンクあり - https://cookpad.connpass.com/event/ - 他、エンジニア各位のblogやSpeaker Deck等
Slide 8
Slide 8 text
https://speakerdeck.com/uzzu/
Slide 9
Slide 9 text
Agenda •アプリ内課金機能の利用状況 •Cuisine(iOS, Android)の技術スタックと理由 •所感と直近のミッション
Slide 10
Slide 10 text
Cookpadアプリ以外でも使いたい https://speakerdeck.com/uzzu/xin-gui-apurikai-fa-wozhi-eruyuzajue-ji-ji-pan
Slide 11
Slide 11 text
Cuisine •新規アプリ開発で必要になるユーザ認証・課金周りの 汎用的且つ複雑な機能を吸収して、サービス開発を加 速する為のプロジェクト •cuisine-api(Rails)、クライアントライブラリ(cuisine- ios, cuisine-android)、実装ガイドライン、導入サ ポート
Slide 12
Slide 12 text
Ϣʔβొ Cookpad API Ϣʔβج൫ Reverse Proxy Cookpad App (iOS, Android) ༷ʑ New App API cuisine-api New App (iOS, Android, etc…) Financier cuisine (ios, android)
Slide 13
Slide 13 text
クライアントライブラリの技術スタック cuisine-ios - KeychainAccess - [test] XCTest - [test] OHHTTPStubs/Swift cuisine-android - kotlin(MPP) - kotlinx-serialization - kotlinx-coroutines - ktor-client - ktor-client-okhttp - [test] kotlin.test - [test] assertk
Slide 14
Slide 14 text
クライアントライブラリの技術スタック •依存ライブラリは少なく、最低限必要なものだけ - 新機能をすぐに試せる状況にしたい - 外的要因によってbeta版SDKを試せない、といった 状況を極力防ぎたい •課金周りは自作したい - 固有のロジックが入る可能性が高い - 既存OSS以上の機能提供がCuisineには必要
Slide 15
Slide 15 text
現状 •cuisine-ios - 認証、アプリ内課金両サポート - 新規アプリではほぼ導入されている(8件) •cuisine-android - 認証周りのみ。アプリ内課金機能追加はこれから - アプリ内課金機能を利用していない新規アプリで 導入されている(2件)
Slide 16
Slide 16 text
現状 •Androidでアプリ内課金使いたい場合は? - ラッパーライブラリ + 実装ガイドライン Android Cookpadも新規Androidアプリも これらを使用して実装されている
Slide 17
Slide 17 text
例) 定期購入の購入処理フロー
Slide 18
Slide 18 text
Agenda •アプリ内課金機能の利用状況 •Cuisine(iOS, Android)の技術スタックと理由 •所感と直近のミッション
Slide 19
Slide 19 text
アプリ内課金実装の共通化に対する所感 •共通化・導入自体は「やればできる」 •各サービスより先周りして動く必要がある - 「使いたい」話を受けてから動くのでは遅い - 「使えますよどうですか?」と売り込むぐらいの スピード感・スタンスであるべき
Slide 20
Slide 20 text
アプリ内課金実装の共通化に対する所感 •WWDCやGoogle I/O等で発表された新機能をシュッと汎用化しなけれ ばならない - 新機能検証は即 - 特にServer notification周りは充実してきているので しっかり活用する •なるべく素の状態に近い汎用的な概念に落とし込み、且つ各サービス で素早く導入できるようにする - それなりに難易度は高いが、ソフトウェアエンジニアとしては とても楽しい
Slide 21
Slide 21 text
直近のミッション •CuisineのCookpadアプリへの導入 - 新規だけでなくCookpadアプリもサービス開発に 注力できるように - Cookpadアプリのレガシーな認証・アプリ内課金実装を リプレースする裏目的もある •導入するためには… - Cookpadアプリの速に追いつく(まずは機能追従) - 導入した後Cuisineをどう運用するか?(速の維持の為)
Slide 22
Slide 22 text
まとめ •Cookpadアプリではアプリ内課金の定期購読機能の新機能 を早期に取り入れる動きがある •Cookpadアプリ以外でも新機能を使いたいので、そのノウ ハウを集約する形でCuisineプロジェクトが存在している、 というのが現状 •CuisineをCookpadアプリにも導入し、新規問わずサービス 開発を加速させるのが今後のミッション