FlowConfig Flutter SDK

pub.dev pub points popularity License: MIT

Update your Flutter app without releasing a new version.

Features

  • 🔧 Remote Config — update any app value instantly
  • 🚩 Feature Flags — control features with rollout percentages
  • 🔧 Maintenance Mode — take your app offline without a release
  • ⬆️ Force Update — require users to update to latest version
  • 📢 Announcements — show in-app messages remotely
  • 📴 Offline First — works without internet using local cache
  • ⚡ Fast — single API call on startup, < 500ms from cache

Installation

Add to your pubspec.yaml:

dependencies:
  flowconfig_flutter: ^1.0.0

Quick Start

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await FlowConfig.initialize(sdkKey: 'fc_prod_xxxx');
  runApp(MyApp());
}

Usage

Remote Config

final title = FlowConfig.getString('app_title', defaultValue: 'My App');
final maxItems = FlowConfig.getInt('max_items', defaultValue: 10);
final showBanner = FlowConfig.getBool('show_banner', defaultValue: false);
final color = FlowConfig.getColor('primary_color', defaultValue: Colors.blue);

Feature Flags

if (FlowConfig.isEnabled('new_checkout_flow')) {
  // show new experience
}

Maintenance Mode

if (FlowConfig.shouldShowMaintenance(currentVersion)) {
  runApp(MaintenanceApp());
  return;
}

Force Update

final status = FlowConfig.checkVersion('1.0.0');
if (status == VersionStatus.updateRequired) {
  runApp(ForceUpdateApp());
  return;
}

Announcements

if (FlowConfig.hasAnnouncement) {
  final a = FlowConfig.currentAnnouncement!;
  showDialog(context: context, builder: (_) => AnnouncementDialog(a));
}

Listen to Config Updates

FlowConfig.onConfigUpdated.listen((_) {
  setState(() {}); // Rebuild with fresh config
});

Documentation

Full docs at https://flowconfig.site/docs

Support