【iOS 17】StoreKitに追加されたAPIを試す
アプリ内課金機能を搭載するためには、購入処理のロジックや、ユーザーの課金アイテム購入状況を考慮したUIを実装する必要がありました。これらの実装は、未経験の方はもちろん、実装経験がある方にとってもそれなりに負荷がかかるものでした。
iOS 17から使用可能なStoreKitのSwiftUI Viewとモディファイアがいくつか追加されました。これらを使用することで、わずか数行のコードでアプリ内課金機能をアプリに搭載することができます。
新しく追加されたSwiftUI View
ProductView
引数に課金アイテムのProductIDを指定することで、指定したProductIDのアイテムを購入するためのViewを表示することができます。productViewStyle(_:)
でViewの外観を変更することができます。
StoreView
引数に課金アイテムのProductIDのコレクションを指定することで、指定したProductIDのアイテムを購入するためのViewをリスト形式で表示することができます。
SubscriptionView
引数に課金アイテムのProductIDのコレクションを指定することで、指定したProductIDのサブスクリプションイテムを購入するためのViewを表示することができます。
新しく追加されたモディファイア
onInAppPurchaseStart(perform:)
onInAppPurchaseStart(perform:)
は購入処理が開始したことを検知するためのモディフィアです。購入処理を行う前に行いたい処理を記述することができます。
onInAppPurchaseCompletion(perform:)
onInAppPurchaseCompletion(perform:)
は購入処理が完了したことを検知するためのモディフィアです。購入処理の結果を受けて、UIやデータの更新を行うことができます。
アプリ内課金処理の実装
前準備
今回は消費型の課金アイテムを実装します。
前準備として、App Store Connectを操作して、アプリ内課金アイテムを追加します。さらに、TestFlightでアプリをテスターに配信できる状態にする必要があります。
App Store Connect上で、アプリ内課金アイテムを追加する方法は、以下をご参照ください。
サンプルコード
参考資料
・Meet StoreKit for SwiftUI
Discussion