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
アプリ内課金の最新事情 クライアントサイド編 / In-app Purchase in Coo...
Search
uzzu
November 27, 2019
Technology
3
4.3k
アプリ内課金の最新事情 クライアントサイド編 / In-app Purchase in Cookpad 2019
Cookpad Tech Kitchen #22 決済基盤の最新事情
https://cookpad.connpass.com/event/153267/
uzzu
November 27, 2019
Tweet
Share
More Decks by uzzu
See All by uzzu
Context Receiversに思いを馳せる / Context Receivers
uzzu
0
620
StoreKitのこれまでとこれから / StoreKit 2 from 1
uzzu
5
12k
Autofill Framework
uzzu
0
98
Billing Client 2.0 acknowledgement
uzzu
0
16k
Promoting IAP対応から学ぶ外部アプリ内課金実装 / Promoting IAP and others
uzzu
2
1.4k
ブログ作り直した / My blog @ Othlo Tech
uzzu
0
130
新規アプリ開発を支えるユーザ・決済基盤
uzzu
2
2.7k
kotlin-mpp-library-tips
uzzu
1
6.2k
Coroutine Kyuin
uzzu
2
270
Other Decks in Technology
See All in Technology
【JAWS-UG大阪 reInvent reCap LT大会 サンバが始まったら強制終了】“1分”で初めてのソロ参戦reInventを数字で振り返りながら反省する
ttelltte
0
140
ドメイン駆動設計の実践により事業の成長スピードと保守性を両立するショッピングクーポン
lycorptech_jp
PRO
12
1.8k
AWS Community Builderのススメ - みんなもCommunity Builderに応募しよう! -
smt7174
0
170
Formal Development of Operating Systems in Rust
riru
1
420
信頼されるためにやったこと、 やらなかったこと。/What we did to be trusted, What we did not do.
bitkey
PRO
0
2.2k
re:Invent 2024のふりかえり
beli68
0
110
embedパッケージを深掘りする / Deep Dive into embed Package in Go
task4233
1
210
今年一年で頑張ること / What I will do my best this year
pauli
1
220
When Windows Meets Kubernetes…
pichuang
0
300
深層学習と3Dキャプチャ・3Dモデル生成(土木学会応用力学委員会 応用数理・AIセミナー)
pfn
PRO
0
460
WantedlyでのKotlin Multiplatformの導入と課題 / Kotlin Multiplatform Implementation and Challenges at Wantedly
kubode
0
250
Unsafe.BitCast のすゝめ。
nenonaninu
0
200
Featured
See All Featured
The Language of Interfaces
destraynor
155
24k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.3k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
How to train your dragon (web standard)
notwaldorf
89
5.8k
Unsuck your backbone
ammeep
669
57k
Bash Introduction
62gerente
610
210k
The Power of CSS Pseudo Elements
geoffreycrofte
74
5.4k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
VelocityConf: Rendering Performance Case Studies
addyosmani
327
24k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.3k
Transcript
アプリ内課金の最新事情 (クライアントサイド編) Cookpad Tech Kitchen #22 @uzzu
自己紹介 •宇津宏一 @uzzu •クライアントサイド開発 がメイン •2017年4月 入社 •Design It!は良い本なの で読みましょう
まとめ •Cookpadアプリではアプリ内課金の定期購読機能の新機能 を早期に取り入れる動きがある •Cookpadアプリ以外でも新機能を使いたいので、そのノウ ハウを集約する形でCuisineプロジェクトが存在している、 というのが現状 •CuisineをCookpadアプリにも導入し、新規問わずサービス 開発を加速させるのが今後のミッション
Agenda •アプリ内課金機能の利用状況 •Cuisine(iOS, Android)の技術スタックと理由 •所感と直近のミッション
アプリ内課金機能の利用状況 •定期購入機能の利用がメイン •cookpadLiveでは都度課金機能を利用している時期も あった(現在は終了) •non-Consumable(都度課金/買い切り)以外は運用実績 がある
Cookpadアプリの速 •iOS: Promoting IAP, Promotional Offers(予定) •Android: Defer billing, Grace
period, Acknowledgement •技術調査は発表後即(みんな新機能が大好き) •導入仕様検討や試作はbeta段階〜OSリリース直後 •使用していないものは未検討ではなく意図的なものがほとん ど
Cookpadアプリの速 •個別のノウハウは随時アウトプットしてるので そちらをどうぞ - クックパッド開発者ブログ - https://techlife.cookpad.com/ - connpassのイベントページに登壇資料のリンクあり -
https://cookpad.connpass.com/event/ - 他、エンジニア各位のblogやSpeaker Deck等
https://speakerdeck.com/uzzu/
Agenda •アプリ内課金機能の利用状況 •Cuisine(iOS, Android)の技術スタックと理由 •所感と直近のミッション
Cookpadアプリ以外でも使いたい https://speakerdeck.com/uzzu/xin-gui-apurikai-fa-wozhi-eruyuzajue-ji-ji-pan
Cuisine •新規アプリ開発で必要になるユーザ認証・課金周りの 汎用的且つ複雑な機能を吸収して、サービス開発を加 速する為のプロジェクト •cuisine-api(Rails)、クライアントライブラリ(cuisine- ios, cuisine-android)、実装ガイドライン、導入サ ポート
Ϣʔβొ Cookpad API Ϣʔβج൫ Reverse Proxy Cookpad App (iOS, Android)
༷ʑ New App API cuisine-api New App (iOS, Android, etc…) Financier cuisine (ios, android)
クライアントライブラリの技術スタック 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
クライアントライブラリの技術スタック •依存ライブラリは少なく、最低限必要なものだけ - 新機能をすぐに試せる状況にしたい - 外的要因によってbeta版SDKを試せない、といった 状況を極力防ぎたい •課金周りは自作したい - 固有のロジックが入る可能性が高い
- 既存OSS以上の機能提供がCuisineには必要
現状 •cuisine-ios - 認証、アプリ内課金両サポート - 新規アプリではほぼ導入されている(8件) •cuisine-android - 認証周りのみ。アプリ内課金機能追加はこれから -
アプリ内課金機能を利用していない新規アプリで 導入されている(2件)
現状 •Androidでアプリ内課金使いたい場合は? - ラッパーライブラリ + 実装ガイドライン Android Cookpadも新規Androidアプリも これらを使用して実装されている
例) 定期購入の購入処理フロー
Agenda •アプリ内課金機能の利用状況 •Cuisine(iOS, Android)の技術スタックと理由 •所感と直近のミッション
アプリ内課金実装の共通化に対する所感 •共通化・導入自体は「やればできる」 •各サービスより先周りして動く必要がある - 「使いたい」話を受けてから動くのでは遅い - 「使えますよどうですか?」と売り込むぐらいの スピード感・スタンスであるべき
アプリ内課金実装の共通化に対する所感 •WWDCやGoogle I/O等で発表された新機能をシュッと汎用化しなけれ ばならない - 新機能検証は即 - 特にServer notification周りは充実してきているので しっかり活用する
•なるべく素の状態に近い汎用的な概念に落とし込み、且つ各サービス で素早く導入できるようにする - それなりに難易度は高いが、ソフトウェアエンジニアとしては とても楽しい
直近のミッション •CuisineのCookpadアプリへの導入 - 新規だけでなくCookpadアプリもサービス開発に 注力できるように - Cookpadアプリのレガシーな認証・アプリ内課金実装を リプレースする裏目的もある •導入するためには… -
Cookpadアプリの速に追いつく(まずは機能追従) - 導入した後Cuisineをどう運用するか?(速の維持の為)
まとめ •Cookpadアプリではアプリ内課金の定期購読機能の新機能 を早期に取り入れる動きがある •Cookpadアプリ以外でも新機能を使いたいので、そのノウ ハウを集約する形でCuisineプロジェクトが存在している、 というのが現状 •CuisineをCookpadアプリにも導入し、新規問わずサービス 開発を加速させるのが今後のミッション