从零到 SaaS:使用 Flutter + Supabase 在 2025 年打造盈利的移动应用

发布: (2025年12月10日 GMT+8 07:55)
5 min read
原文: Dev.to

Source: Dev.to

架构

Clean Architecture 能让你的应用在增长过程中保持可维护性。以下是各层的连接方式:

                    ┌──────────────────────────────┐
                    │         FLUTTER APP          │
                    └──────────────────────────────┘

        ┌──────────────────────────┼──────────────────────────┐
        │                          │                          │
        ▼                          ▼                          ▼
┌───────────────┐        ┌─────────────────┐        ┌─────────────────┐
│  PRESENTATION │        │     DOMAIN      │        │      DATA       │
│───────────────│        │─────────────────│        │─────────────────│
│ • Widgets     │   ──▶  │ • Use Cases     │   ──▶  │ • Repositories  │
│ • BLoC/Cubit  │        │ • Entities      │        │ • Data Sources  │
│ • Riverpod    │        │ • Business Logic│        │ • Models        │
└───────────────┘        └─────────────────┘        └─────────────────┘

                     ┌──────────────────────────────────┼──────────────────────────────────┐
                     │                                  │                                  │
                     ▼                                  ▼                                  ▼
            ┌─────────────────┐                ┌─────────────────┐                ┌─────────────────┐
            │    SUPABASE     │                │   REVENUECAT    │                │   LOCAL CACHE   │
            │─────────────────│                │─────────────────│                │─────────────────│
            │ • PostgreSQL    │                │ • Subscriptions │                │ • Hive/SQLite   │
            │ • Auth          │                │ • Receipts      │                │ • Shared Prefs │
            │ • Storage       │                │ • Analytics     │                │                 │
            │ • Edge Functions│                │                 │                │                 │
            └─────────────────┘                └─────────────────┘                └─────────────────┘

步骤 1:费用细分

Google Play 开发者账户

项目费用频率
注册$25一次性
年费$0
Apple(可选)$99每年

Google Play 服务费

收入层级Google 收取你保留
首 $1M/年15%85%
超过 $1M/年30%70%
订阅 第一年15%85%
订阅 第二年及以后10%90%

💡 专业提示: 让订阅者保持 12 个月以上,Google 只收取 10%。

替代计费(EEA)

在欧洲经济区:4% 折扣 → 11% 而非 15%。

步骤 2:Supabase 后端

免费层 vs 专业版对比

功能免费层专业版($25/月)
数据库500 MB8 GB
存储1 GB100 GB
带宽5 GB250 GB
MAU(月活用户)50,000100,000
Edge Functions500K/月2M/月
实时连接200 连接500 连接
备份每日
暂停1 周后永不

⚠️ 免费项目在 1 周不活跃后会暂停。拥有付费用户后请升级。

步骤 3:订阅流程

    USER JOURNEY
    ═══════════

    ┌─────────┐         ┌─────────┐         ┌─────────┐         ┌─────────┐
    │  User   │ ──────▶ │ Paywall │ ──────▶ │ Google  │ ──────▶ │ Success │
    │  Taps   │         │ Screen  │         │  Play   │         │   🎉    │
    │ Upgrade │         │         │         │ Billing │         │         │
    └─────────┘         └─────────┘         └─────────┘         └─────────┘


    ┌─────────────────────────────────────────────────────────────────────┐
    │                         BACKEND FLOW                                │
    ├─────────────────────────────────────────────────────────────────────┤
    │                                                                     │
    │    Google Play ──▶ RevenueCat ──▶ Webhook ──▶ Supabase Edge Func   │
    │         │              │              │              │               │
    │    [Receipt]     [Validate]     [Notify]      [Update DB]          │
    │                                                                     │
    └─────────────────────────────────────────────────────────────────────┘

步骤 4:Flutter 代码设置

依赖

# pubspec.yaml
dependencies:
  flutter:
    sdk: flutter
  supabase_flutter: ^2.0.0
  purchases_flutter: ^6.0.0  # RevenueCat
  flutter_bloc: ^8.1.0
  get_it: ^7.6.0             # Dependency Injection

初始化 Supabase

import 'package:supabase_flutter/supabase_flutter.dart';
import 'package:flutter/widgets.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await Supabase.initialize(
    url: 'YOUR_SUPABASE_URL',
    anonKey: 'YOUR_ANON_KEY',
  );

  runApp(MyApp());
}

final supabase = Supabase.instance.client;

RevenueCat 购买服务

import 'package:purchases_flutter/purchases_flutter.dart';

class PurchaseService {
  static Future<void> init() async {
    await Purchases.configure(
      PurchasesConfiguration('your_revenuecat_api_key'),
    );
  }

  static Future<List<Package>> getOfferings() async {
    final offerings = await Purchases.getOfferings();
    return offerings.current?.availablePackages ?? [];
  }

  static Future<bool> purchase(Package package) async {
    try {
      final result = await Purchases.purchasePackage(package);
      return result.customerInfo.entitlements.active.containsKey('premium');
    } catch (_) {
      return false;
    }
  }

  static Future<bool> isPremium() async {
    final customerInfo = await Purchases.getCustomerInfo();
    return customerInfo.entitlements.active.containsKey('premium');
  }
}

步骤 5:定价策略

推荐套餐

套餐价格转化率备注
每周$2.9947% 选择此套餐低承诺
每月$9.99标准最常见
每年$49.99最佳价值节省 58%
永久$99.99高 LTV价格锚点

2025 年关键统计

指标数值
平均订阅价格$10.20/月
7 天试用转化率5.2%
试用提升 LTV最高 64%
每周订阅受欢迎程度47% 的所有订阅

📊 计算方式: 100 位用户 × $9.99 × 85% = $849/月

真实独立开发者收入

收入分布

级别月收入百分比
大多数首个应用< $100 总计~60%
仍在挣扎$0 – $500~25%
可持续运营$1K – $5K~10%
成功$5K – $20K~4%
顶尖表现者$20K+~1%

成功案例

应用收入时间线
Postiz$2K MRR4 个月
Formula Bot$220K MRR18 个月
ShipFast$133K/月持续中
Itemlist$1.4K/月3 种定价层
Xnapper已售 $150K21 个月

完整技术栈

技术栈概览

层级技术成本
前端Flutter 3.x + Riverpod/BLoC免费
后端Supabase(Postgres + Auth)免费 → $25/月
支付RevenueCat免费 → 收入比例
商店Google Play$25 一次性
商店(iOS)App Store$99/年

起始成本

┌───
Back to Blog

相关文章

阅读更多 »