ann_flutter_flavor
A CLI tool and runtime API for ANN Flutter flavor management.
Reads a single annspec.yaml source-of-truth and:
- Generates typed Dart flavor code (
ann_flavor.g.dart) - Wires the Gradle plugin reference into Android build files
- Wires the CocoaPods plugin reference into the iOS Podfile
Installation
Add to your Flutter app's pubspec.yaml:
dependencies:
ann_flutter_flavor: ^0.1.0
Setup
1. Create annspec.yaml at the root of your Flutter project
platforms:
android:
base_id: com.example
flavors:
- key: my_app
name: My App
id_suffix: .myapp
subscriptions:
- api_key: goog_XXXX
entitlement_ids: [standard, premium]
ios:
base_id: com.example
flavors:
- key: my_app
name: My App
id_suffix: .myapp
subscriptions:
- api_key: appl_XXXX
entitlement_ids: [standard, premium]
2. Run the sync command
dart run ann_flutter_flavor sync
This generates lib/generated/ann_flavor.g.dart with typed config classes for every flavor.
3. Call setupFlavor in each flavor entry point
// lib/flavors/main_my_app.dart
import 'package:ann_flutter_flavor/ann_flutter_flavor.dart';
import 'package:my_app/generated/ann_flavor.g.dart';
void main() {
setupFlavor(AnnFlavorKey.myApp, _detectPlatform());
runApp(const MyApp());
}
4. Access flavor data anywhere
AnnFlavor.current.name // "My App"
AnnFlavor.current.androidId // "com.example.myapp"
AnnFlavor.platform // AnnPlatform.android
AnnFlavor.current.subscriptions(AnnFlavor.platform)?.first.apiKey
CLI Commands
| Command | Description |
|---|---|
dart run ann_flutter_flavor sync |
Generate flavor code and wire Android/iOS |
dart run ann_flutter_flavor validate |
Validate annspec.yaml for missing required fields |
Both commands accept -p <path> to point at a Flutter project other than the current directory.
Runtime API
| Symbol | Description |
|---|---|
AnnFlavor.init(config:, platform:) |
Initialize (called by setupFlavor) |
AnnFlavor.current |
The active AnnFlavorConfig |
AnnFlavor.platform |
The active AnnPlatform |
AnnFlavor.key |
Shorthand for AnnFlavor.current.key |
AnnPlatform |
android, ios, web, windows |
AnnSubscription |
apiKey + entitlementIds |
AnnAuthConfig |
clientId + reversedClientId |
License
MIT
Libraries
- ann_flutter_flavor
- ANN Flutter Flavor — runtime API and CLI code generation.