Внутренние покупки в приложениях на FlutterFlow — полный гайд

Комплексный туториал по внедрению in-app purchases через RevenueCat в приложениях на FlutterFlow.

Суть за 30 секунд

Пошаговое руководство по настройке внутренних покупок: RevenueCat как middleware между App Store/Google Play и FlutterFlow, подписки, entitlements, offerings, тестирование через StoreKit.

📍 Навигация (Timeline)

Введение и концепция (00:00 — 04:00)

  • 00:00 — Что такое in-app purchase, зачем нужно
  • 01:00 — Freemium модель: бесплатное приложение + платные фичи
  • 02:00 — Поток: пользователь → paywall → выбор плана → оплата → доступ
  • 03:00 — App Store Connect (iOS) и Google Play Console (Android)
  • 03:30 — RevenueCat как API-посредник

Почему RevenueCat (04:00 — 09:00)

  • 04:00 — RevenueCat упрощает интеграцию — не нужно писать backend
  • 05:00 — Кроссплатформенность: iOS + Android через один SDK
  • 06:00 — Бесплатно до $2,500/mec revenue, потом 1%
  • 08:00 — Идеально для indie-разработчиков и малого бизнеса

Три концепции RevenueCat (09:00 — 12:00)

  • 09:00Products — ссылки на продукты в App Store/Google Play
  • 09:30 — Настройка продуктов в App Store Connect → передача ID в RevenueCat
  • 10:00Entitlements — право доступа (например, “premium”)
  • 10:30 — Один entitlement = множество продуктов (weekly, monthly, yearly)
  • 11:00Offerings — группы предложений (летняя распродажа, скидка 20%)
  • 11:30 — RevenueCat = единая точка управления, не нужно менять код

Настройка RevenueCat (12:00 — 20:00)

  • 12:00 — Создание проекта в RevenueCat
  • 13:00 — Подключение App Store Connect через API-ключ
  • 14:00 — Bundle ID — критически важен, должен совпадать везде
  • 15:00 — API-ключи для FlutterFlow
  • 16:00 — Products в RevenueCat: identifier должен совпадать с App Store
  • 17:00 — Entitlement “pro” → привязка yearly subscription
  • 18:00 — Проверка entitlement вместо каждого продукта отдельно
  • 19:00 — Offerings: летняя распродажа, временные акции

App Store Connect — настройка подписок (20:00 — 24:00)

  • 20:00 — Создание subscription group в App Store Connect
  • 21:00 — Annual $39.99 + 1 week free trial
  • 22:00 — Introductory offer: бесплатная неделя
  • 22:30 — Создание subscription groups: 1 week, 1 month, 1 year
  • 23:00 — Identifier должен точно совпадать с RevenueCat

FlutterFlow — интеграция (24:00 — 28:00)

  • 24:00 — Кастомный виджет: API key + entitlement name
  • 25:00 — Тестирование через симулятор, не из FlutterFlow
  • 25:30 — Bundle ID в FlutterFlow должен совпадать с App Store
  • 26:00 — Reverse domain notation: com.jamesnocode.weatherapp
  • 27:00 — Скачивание Flutter-кода из проекта

Xcode — настройка iOS проекта (28:00 — 37:00)

  • 28:00 — Открытие iOS проекта в Xcode
  • 29:00 — Структура Flutter-проекта: ios/, android/, web/
  • 30:00 — Проверка Bundle Identifier в Xcode
  • 31:00 — 3 способа тестирования: StoreKit Testing, Sandbox, Production
  • 33:00 — Подписание приложения в Xcode (Signing & Capabilities)
  • 34:00 — Создание StoreKit Configuration File
  • 35:00 — Добавление продукта: Reference Name + Product ID
  • 36:00 — Цена $39.99, duration: 1 year, free trial: 1 week
  • 37:00 — Выбор StoreKit Configuration файла в scheme

Тестирование (37:00 — 44:00)

  • 37:00 — Запуск в iOS Simulator
  • 38:00 — Paywall: кнопка с ценой, диалог подписки
  • 39:00 — Xcode log: purchasing product, trial started
  • 40:00 — RevenueCat Dashboard: trial started, expiration в 7 дней
  • 41:00 — Sandbox data в RevenueCat
  • 42:00 — Отмена подписки: opted out of renewal
  • 43:00 — Удаление тестовых аккаунтов

Переход к Production (44:00 — 49:00)

  • 44:00 — Удаление StoreKit Configuration → переход к App Store Connect
  • 45:00 — Создание Sandbox тестеров в App Store Connect
  • 46:00 — Production = реальные пользователи, реальные деньги
  • 47:00 — Кастомизация: redirect после покупки, custom UI
  • 48:00 — Patreon: доступ к проекту и тренингам

🧠 Ключевые концепции

  • RevenueCat — middleware для управления подписками между stores и приложением
  • Entitlements — право доступа к премиум-контенту
  • Products — продукты в App Store/Google Play (weekly, monthly, yearly)
  • Offerings — группы предложений для A/B тестов и акций
  • StoreKit Testing — локальное тестирование подписок в Xcode без App Store Connect
  • Sandbox Account — тестовый аккаунт для проверки покупок без списания денег
  • Bundle ID — уникальный идентификатор приложения, должен совпадать везде

🛠 Практические фишки

  • RevenueCat бесплатен до $2,500/мес revenue — идеально для старта
  • Bundle ID должен точно совпадать в FlutterFlow, Xcode, App Store Connect и RevenueCat
  • StoreKit Testing позволяет тестировать без публикации в App Store
  • Один entitlement = множество продуктов — проверяй одно право доступа, а не каждый продукт
  • Offerings позволяют включать/выключать акции без изменения кода
  • В RevenueCat видно все транзакции: trial started, renewal, cancellation
  • Sandbox данные отделены от production в RevenueCat Dashboard
  • Отмена подписки ≠ мгновенный доступ, пользователь остаётся до конца периода

📌 Резюме

Фундаментальный гайд по монетизации через in-app purchases в FlutterFlow с использованием RevenueCat. Охватывает полный цикл: от настройки продуктов в App Store Connect до тестирования в Xcode и RevenueCat Dashboard. Must-watch для всех, кто планирует monetize приложение.

📺 Практика (Видео)