Cross-Platform Mobile App with IAP (React Native / Flutter)
End-to-end stack for React Native or Flutter apps that need in-app purchases, subscriptions, and parity across iOS App Store and Google Play.
The Stack
React Native
— Cross-platform UI framework optionalWidely adopted, massive ecosystem of native modules, and mature RevenueCat / AppsFlyer SDKs available as first-class React Native packages.
Flutter
— Cross-platform UI framework (alternative) optionalSingle Dart codebase that compiles to native iOS and Android; RevenueCat, Supabase, and Sentry all publish official Flutter plugins.
RevenueCat
— Cross-platform IAP & subscription managementSingle SDK normalises App Store and Google Play purchase flows, handles subscription status, promotional offers, and sends unified webhooks regardless of store.
Alternatives: adapty, glassfy, qonversion
Supabase
— Backend-as-a-service (auth + database)Provides Postgres-backed auth, row-level security, real-time subscriptions, and storage — all with official React Native and Flutter SDKs, replacing Firebase for teams who want SQL.
Alternatives: firebase, appwrite, back4app
AppsFlyer
— Multi-platform attributionMeasures installs from both App Store and Google Play campaigns in a single dashboard; handles SKAdNetwork on iOS and Google's Privacy Sandbox on Android simultaneously.
Alternatives: adjust, branch, singular
PostHog
— Product analytics (self-hostable)Open-source analytics with session replay, feature flags, and A/B testing — can be self-hosted for full GDPR compliance, and the React Native / Flutter SDKs are actively maintained.
Alternatives: amplitude, mixpanel, google-analytics
Sentry
— Cross-platform crash & error monitoringSingle Sentry project captures both iOS and Android crashes from a unified React Native or Flutter integration, with source map support for minified bundles.
Alternatives: bugsnag, firebase-crashlytics, datadog
OneSignal
— Push notifications (APNs + FCM unified)Abstracts APNs and FCM into a single REST API and dashboard, handles token management and device targeting across both platforms without separate integrations.
Alternatives: braze, airship, moengage
Codemagic
— CI/CD for React Native & Flutter optionalPurpose-built CI for mobile with Flutter-specific build workflows, automatic code signing, and one-click delivery to App Store Connect and Google Play Console.
Alternatives: bitrise, fastlane, github-actions
Gotchas
- ⚠️ Google Play's billing library v5+ (required from November 2023) changed how subscriptions work: there are now 'base plans' and 'offers', which are fundamentally different from Apple's subscription groups. RevenueCat maps these for you, but if you query the Play Billing API directly or use an older SDK version, you will see empty product lists on Android 12+ devices.
- ⚠️ On iOS 14+, the ATT (App Tracking Transparency) prompt must be shown before any advertising-ID-based attribution can fire. The timing of this prompt is critical — showing it too early (before your value prop is clear) tanks opt-in rates to single digits. AppsFlyer's Probabilistic Matching provides install attribution even for users who decline ATT, but is less accurate.
- ⚠️ React Native's JSI (JavaScript Interface) hermes bundle and Flutter's AOT binary both require separate dSYM / symbol upload steps to get readable crash stack traces in Sentry. Missing this step in your CI pipeline means Sentry shows only memory addresses. Add the Sentry Gradle plugin (Android) and the Sentry CLI Upload dSYMs step (iOS) to your Codemagic workflow from day one.
Related Stacks
iOS Subscription App Stack
Production-ready toolchain for building an iOS app with in-app purchases, subscriptions, crash monitoring, and growth analytics.
Social & Community Mobile App Infrastructure
Production backend for consumer social apps: real-time chat, feeds, media storage, moderation, push notifications, and growth attribution — without a custom server fleet.
Free Ad-Supported Mobile App Monetization Stack
Toolchain for ad-monetised mobile apps: mediation, waterfall configuration, user-level ROAS measurement, consent management, and in-app event analytics.