●DEADLINE — Google Play は2026年8月31日以降、新規アプリと既存アプリの更新の双方に対象 API レベル36(Android 16)以上を要求します。残り12日です●EXTENSION — 期限に間に合わない場合は Play Console の期限延長フォームから申請することで11月1日まで配信を継続できます。延長は自動ではなく、申請自体を期限内に行う必要があります●TARGET SDK — Rork が出力する Expo / React Native アプリでも targetSdkVersion は自分で確認が必要です。テンプレートが古い SDK に固定されていると、生成しただけでは要件を満たしません●RORK MAX — 従来の Rork が React Native / Expo を出力するのに対し、Rork Max はネイティブ Swift を生成します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro・iMessage に対応します●FUNDING — Left Lane Capital 主導の1,500万ドルのシードラウンドが4月9日に発表されました。あわせてアプリビルダーの Paperline を買収し、エンジニアリング人材の獲得を進めています●iOS — iOS 27 は開発者向けベータ6が8月17日に配布され、秋の正式リリースが近づいています。ネイティブ Swift 出力を使うなら、新 OS への対応時期が配布計画に直接効いてきます●DEADLINE — Google Play は2026年8月31日以降、新規アプリと既存アプリの更新の双方に対象 API レベル36(Android 16)以上を要求します。残り12日です●EXTENSION — 期限に間に合わない場合は Play Console の期限延長フォームから申請することで11月1日まで配信を継続できます。延長は自動ではなく、申請自体を期限内に行う必要があります●TARGET SDK — Rork が出力する Expo / React Native アプリでも targetSdkVersion は自分で確認が必要です。テンプレートが古い SDK に固定されていると、生成しただけでは要件を満たしません●RORK MAX — 従来の Rork が React Native / Expo を出力するのに対し、Rork Max はネイティブ Swift を生成します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro・iMessage に対応します●FUNDING — Left Lane Capital 主導の1,500万ドルのシードラウンドが4月9日に発表されました。あわせてアプリビルダーの Paperline を買収し、エンジニアリング人材の獲得を進めています●iOS — iOS 27 は開発者向けベータ6が8月17日に配布され、秋の正式リリースが近づいています。ネイティブ Swift 出力を使うなら、新 OS への対応時期が配布計画に直接効いてきます
React Native でのサブスク実装は、StoreKit 2 と Google Play Billing を直接叩くよりも、react-native-purchases(RevenueCat)でラップするのが現在の標準です。レシート検証・復元・プラットフォーム差異の吸収をサービス側が引き受けてくれるため、個人開発では特に効きます。Expo 環境では EAS Build が前提になる点だけ注意してください。
// RevenueCat によるサブスク実装の骨格import Purchases, { LOG_LEVEL } from 'react-native-purchases';import { Platform } from 'react-native';export async function initPurchases(userId: string) { Purchases.setLogLevel(LOG_LEVEL.INFO); Purchases.configure({ apiKey: Platform.OS === 'ios' ? 'YOUR_RC_IOS_KEY' : 'YOUR_RC_ANDROID_KEY', appUserID: userId, });}export async function purchaseMonthly() { const offerings = await Purchases.getOfferings(); const pkg = offerings.current?.monthly; if (!pkg) throw new Error('オファリング未設定'); const { customerInfo } = await Purchases.purchasePackage(pkg); return customerInfo.entitlements.active['premium'] !== undefined;}export async function isPremium(): Promise<boolean> { const info = await Purchases.getCustomerInfo(); return info.entitlements.active['premium'] !== undefined;}
トライアルから有料への転換フロー
転換率を左右するのは、トライアル中の体験設計です。効果的だと感じている流れは次のとおりです。
インストール直後は基本機能を無料開放する
プレミアム機能への最初のアクセス試行をトリガーにトライアルを案内する
トライアル終了の2日前に「もうすぐ課金が始まります」と正直に通知する
終了当日の朝に、トライアル中に使った機能を振り返るリマインドを送る
3番目の「課金前の正直な通知」は転換率を下げるように見えて、長期では効きます。意図しない課金で残る1ヶ月分の売上より、ストアレビューと返金率への悪影響のほうがずっと高くつく、というのが私の結論です。Apple も Google も欺瞞的なサブスク誘導には年々厳しくなっています。
買い切り — シンプルさの価値と頭打ちの構造
買い切りは App Store の Pricing Tier を選び、アプリ内で機能を解放するだけ。課金状態の管理も「購入済みか否か」の1ビットで済みます。
個人開発の規模なら、ストア手数料はもはや30%ではありません。Apple の App Store Small Business Program は年間売上 $1M 未満の開発者の手数料を15%にし、Google Play も最初の $1M までは15%です(2026年6月時点。適用には申請や条件があるため、最新の公式情報をご確認ください)。30%前提の古い試算と比べると、課金系モデルの手取りは2割強も変わります。サブスクと買い切りの試算をするときは、まずこのプログラムの適用可否を確認してください。
Rork Max(Swift)の場合: StoreKit 2 を直接使えます。Product.purchase() と Transaction.currentEntitlements で完結し、レシート検証も Transaction の署名検証としてフレームワークに組み込まれているため、小規模アプリなら RevenueCat を挟まない選択も現実的です。広告は Google Mobile Ads SDK(iOS ネイティブ版)をそのまま組み込みます。
// Rork Max(Swift)での StoreKit 2 によるサブスク購入import StoreKitfunc purchaseMonthly() async throws -> Bool { guard let product = try await Product.products(for: ["premium_monthly"]).first else { return false } let result = try await product.purchase() if case .success(let verification) = result, case .verified(let transaction) = verification { await transaction.finish() return true } return false}
どちらを選ぶかは収益モデルの観点でも整理できます。広告主体でいくなら、両 OS に同時展開できる Rork(Expo)のほうがインプレッション総量を稼ぎやすい。サブスク主体で Apple エコシステムに深く入るなら、ウィジェットや Live Activities まで使える Rork Max が訴求力で勝ります。