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

アプリ内課金の最新事情 クライアントサイド編 / In-app Purchase in Cookpad 2019

uzzu
November 27, 2019

アプリ内課金の最新事情 クライアントサイド編 / In-app Purchase in Cookpad 2019

Cookpad Tech Kitchen #22 決済基盤の最新事情 https://cookpad.connpass.com/event/153267/

uzzu

November 27, 2019
Tweet

More Decks by uzzu

Other Decks in Technology

Transcript

  1. アプリ内課金の最新事情
    (クライアントサイド編)
    Cookpad Tech Kitchen #22
    @uzzu

    View Slide

  2. 自己紹介
    •宇津宏一 @uzzu
    •クライアントサイド開発
    がメイン
    •2017年4月 入社
    •Design It!は良い本なの
    で読みましょう

    View Slide

  3. まとめ
    •Cookpadアプリではアプリ内課金の定期購読機能の新機能
    を早期に取り入れる動きがある
    •Cookpadアプリ以外でも新機能を使いたいので、そのノウ
    ハウを集約する形でCuisineプロジェクトが存在している、
    というのが現状
    •CuisineをCookpadアプリにも導入し、新規問わずサービス
    開発を加速させるのが今後のミッション

    View Slide

  4. Agenda
    •アプリ内課金機能の利用状況
    •Cuisine(iOS, Android)の技術スタックと理由
    •所感と直近のミッション

    View Slide

  5. アプリ内課金機能の利用状況
    •定期購入機能の利用がメイン
    •cookpadLiveでは都度課金機能を利用している時期も
    あった(現在は終了)
    •non-Consumable(都度課金/買い切り)以外は運用実績
    がある

    View Slide

  6. Cookpadアプリの速
    •iOS: Promoting IAP, Promotional Offers(予定)
    •Android: Defer billing, Grace period, Acknowledgement
    •技術調査は発表後即(みんな新機能が大好き)
    •導入仕様検討や試作はbeta段階〜OSリリース直後
    •使用していないものは未検討ではなく意図的なものがほとん

    View Slide

  7. Cookpadアプリの速
    •個別のノウハウは随時アウトプットしてるので

    そちらをどうぞ

    - クックパッド開発者ブログ

    - https://techlife.cookpad.com/

    - connpassのイベントページに登壇資料のリンクあり

    - https://cookpad.connpass.com/event/

    - 他、エンジニア各位のblogやSpeaker Deck等

    View Slide

  8. https://speakerdeck.com/uzzu/

    View Slide

  9. Agenda
    •アプリ内課金機能の利用状況
    •Cuisine(iOS, Android)の技術スタックと理由
    •所感と直近のミッション

    View Slide

  10. Cookpadアプリ以外でも使いたい
    https://speakerdeck.com/uzzu/xin-gui-apurikai-fa-wozhi-eruyuzajue-ji-ji-pan

    View Slide

  11. Cuisine
    •新規アプリ開発で必要になるユーザ認証・課金周りの
    汎用的且つ複雑な機能を吸収して、サービス開発を加
    速する為のプロジェクト
    •cuisine-api(Rails)、クライアントライブラリ(cuisine-
    ios, cuisine-android)、実装ガイドライン、導入サ
    ポート

    View Slide

  12. Ϣʔβొ࿥
    Cookpad API
    Ϣʔβج൫
    Reverse Proxy
    Cookpad App (iOS, Android)
    ༷ʑ
    New App API cuisine-api
    New App (iOS, Android, etc…)
    Financier
    cuisine
    (ios, android)

    View Slide

  13. クライアントライブラリの技術スタック
    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

    View Slide

  14. クライアントライブラリの技術スタック
    •依存ライブラリは少なく、最低限必要なものだけ

    - 新機能をすぐに試せる状況にしたい

    - 外的要因によってbeta版SDKを試せない、といった

    状況を極力防ぎたい
    •課金周りは自作したい

    - 固有のロジックが入る可能性が高い

    - 既存OSS以上の機能提供がCuisineには必要

    View Slide

  15. 現状
    •cuisine-ios

    - 認証、アプリ内課金両サポート

    - 新規アプリではほぼ導入されている(8件)
    •cuisine-android

    - 認証周りのみ。アプリ内課金機能追加はこれから

    - アプリ内課金機能を利用していない新規アプリで

     導入されている(2件)

    View Slide

  16. 現状
    •Androidでアプリ内課金使いたい場合は?

    - ラッパーライブラリ + 実装ガイドライン

    Android Cookpadも新規Androidアプリも

    これらを使用して実装されている

    View Slide

  17. 例) 定期購入の購入処理フロー

    View Slide

  18. Agenda
    •アプリ内課金機能の利用状況
    •Cuisine(iOS, Android)の技術スタックと理由
    •所感と直近のミッション

    View Slide

  19. アプリ内課金実装の共通化に対する所感
    •共通化・導入自体は「やればできる」
    •各サービスより先周りして動く必要がある

    - 「使いたい」話を受けてから動くのでは遅い

    - 「使えますよどうですか?」と売り込むぐらいの

    スピード感・スタンスであるべき

    View Slide

  20. アプリ内課金実装の共通化に対する所感
    •WWDCやGoogle I/O等で発表された新機能をシュッと汎用化しなけれ
    ばならない

    - 新機能検証は即

    - 特にServer notification周りは充実してきているので

    しっかり活用する
    •なるべく素の状態に近い汎用的な概念に落とし込み、且つ各サービス
    で素早く導入できるようにする

    - それなりに難易度は高いが、ソフトウェアエンジニアとしては

     とても楽しい

    View Slide

  21. 直近のミッション
    •CuisineのCookpadアプリへの導入

    - 新規だけでなくCookpadアプリもサービス開発に

    注力できるように

    - Cookpadアプリのレガシーな認証・アプリ内課金実装を

    リプレースする裏目的もある
    •導入するためには…

    - Cookpadアプリの速に追いつく(まずは機能追従)

    - 導入した後Cuisineをどう運用するか?(速の維持の為)

    View Slide

  22. まとめ
    •Cookpadアプリではアプリ内課金の定期購読機能の新機能
    を早期に取り入れる動きがある
    •Cookpadアプリ以外でも新機能を使いたいので、そのノウ
    ハウを集約する形でCuisineプロジェクトが存在している、
    というのが現状
    •CuisineをCookpadアプリにも導入し、新規問わずサービス
    開発を加速させるのが今後のミッション

    View Slide