Mobile — In-App Purchases (RevenueCat & friends)
StoreKit 2, Google Play Billing, RevenueCat / Adapty / Glassfy — IAP in 2026.
In-app purchases are the most important / annoying surface in mobile monetization. The Apple-15-or-30%, Google-10-or-15-or-30% tax structure remains; EU DMA (since 2024) introduced alternative payment options on iOS in Europe (with Apple's Core Technology Fee complications). For non-IAP payments see payments and subscriptions-billing. For ASO / store reviews see Mobile — App Store Optimization.
The two native APIs
- ★ StoreKit 2 (iOS 15+) — modern Swift API; subscriptions, products, transactions; verification via JWS in-process. Replaces StoreKit 1 boilerplate.
- ★ Google Play Billing v7+ — Android billing API; subscriptions, products, base plans, offers.
- AppPurchaser, Promo codes, Subscription offers — Apple-specific perks.
Cross-platform hosted (the indie default)
- ★ RevenueCat — the dominant choice for indie / SMB IAP in 2026. SDKs for iOS, Android, RN, Flutter, Web, Unity. Free up to $2.5k MTR, then a percentage. Subscription analytics, A/B testing, paywall builder, offerings, entitlements, webhooks, integrations with Mixpanel/Amplitude/PostHog/Stripe.
- ★ Adapty — RevenueCat alternative; competitive pricing; native paywall builder; A/B testing. Free tier exists.
- Glassfy — IAP infrastructure; free tier.
- Qonversion — analytics-flavored IAP; free + paid.
- Apphud — IAP + paywalls + churn; paid.
- Purchasely — paywall-focused; paid.
- Nami ML — paywall + ML-driven optimization; paid.
Why teams use a service vs raw StoreKit/Play Billing
- Cross-platform entitlement model — one "user is pro" check, two stores.
- Subscription lifecycle webhooks — handle renewals, refunds, grace periods server-side.
- Receipt validation — done server-side, securely.
- Paywall A/B testing — change plans/prices/copy without an app release.
- Analytics out-of-the-box — MRR, churn, conversion.
RN
- react-native-iap — bare RN bindings to native APIs.
- react-native-purchases (RevenueCat) — wraps the cross-platform service.
- expo-in-app-purchases — Expo wrapper (less actively developed).
Flutter
- in_app_purchase — official.
- purchases_flutter (RevenueCat).
Capacitor
- @capacitor-community/in-app-purchases, RevenueCat Capacitor plugin.
Web / desktop bridges
- ★ Stripe for non-store flows (web, desktop) — see payments.
- Paddle Mobile / Paddle Payments — handles MoR / VAT; not store-IAP.
EU DMA / alternative app stores (2024–26)
- AltStore PAL — third-party iOS marketplace in EU; alternative payment options.
- Setapp Mobile (MacPaw) — subscription-bundle store.
- Apple's Core Technology Fee — €0.50/install/year above 1M annual installs; complicates math for free apps with breakouts.
- Reader apps entitlement — long-running carve-out for content apps.
Receipt validation / server side
- App Store Server API — Apple's REST API for transaction verification, refund webhooks.
- Google Play Developer API — Android equivalent.
- RevenueCat / Adapty / Glassfy abstract both behind one webhook.
Pick this if…
- Default indie / SMB: RevenueCat. Free until you start making real money.
- RevenueCat alternative: Adapty.
- You're huge and want to own all infra: raw StoreKit 2 + Play Billing v7 with your own server.
- Bundle / subscription-cross-platform with web component: RevenueCat + Stripe Web.
- Reader app (Apple carve-out): raw StoreKit + your own web subscription.