fluframe library
fluFrame CLI — generates production-ready Flutter apps from the fluFrame boilerplate.
Classes
- AddonPatch
- An exact-string edit on a template-owned file.
- BackendAddon
- A generation addon applied on top of the base template overlay (auth backends, error reporting, ...). Addons are stackable: each is applied in turn with the same primitives.
- CreateCommand
-
fluframe create <project_name>— scaffolds a new app from the template. - FluframeCommandRunner
-
Entry point of the
fluframecommand line interface. - ProjectGenerator
- Generates a new Flutter project from the fluFrame template.
- Upgrader
- Applies template updates to an existing generated app via a per-file three-way merge (ADR 0002): BASE = the bundle of the version the app was generated with (from the pub.dev archive), THEIRS = the current bundle, OURS = the user's working tree.
Enums
- UpgradeStatus
- How a single file fared during an upgrade (spec 002).
Constants
- amplitudeAddon → const BackendAddon
- The Amplitude analytics addon: swaps the analytics seam's provider to a real SDK, guarded on a configured API key.
-
analyticsAddons
→ const Map<
String, BackendAddon> -
Analytics addons, keyed by
--analyticsvalue. -
backendAddons
→ const Map<
String, BackendAddon> -
All available backend addons, keyed by
--backendvalue. - cliVersion → const String
-
The current version of the fluframe CLI. Keep in sync with
pubspec.yaml (guarded by
test/version_sync_test.dart). -
errorReportingAddons
→ const Map<
String, BackendAddon> -
Error-reporting addons, keyed by
--error-reportingvalue. - firebaseAddon → const BackendAddon
- The Firebase auth backend (stage 3 of the backend roadmap).
-
overlayEntries
→ const List<
String> -
Files and directories copied from the template over a fresh
flutter createoutput. - sentryAddon → const BackendAddon
-
The Sentry error-reporting addon: wires the crash-reporting seam
shipped in the template's
core/logging/error_handlers.dart. - supabaseAddon → const BackendAddon
- The Supabase auth backend (stage 2 of the backend roadmap).
- templateDisplayName → const String
- Template display name that gets rewritten into the humanized app title.
- templateDisplayNameJa → const String
-
Japanese template display name (
appTitleinapp_ja.arb). - templateDisplayNameKo → const String
-
Korean template display name (
appTitleinapp_ko.arb), rewritten to the humanized app title so generated apps carry no fluFrame branding in any locale. - templatePackageName → const String
- Template package name that gets rewritten into the new project's name.
Functions
-
downloadPublishedBundle(
String version) → Future< Directory> -
Downloads the pub.dev archive of fluframe
versionand extracts itstemplates/directory (the app bundle + addons) into a temp folder. -
humanizePackageName(
String name) → String - Converts a package name into a human-readable title.
-
isValidOrg(
String org) → bool -
Whether
orgis a valid organization identifier forflutter create: dot-separated segments, each starting with a letter (e.g.com.example,dev.my_org.apps). -
isValidPackageName(
String name) → bool -
Whether
nameis a valid Dart package name (lower_snake_case, no leading digit, not a reserved word). -
resolveTemplateDirectory(
{String? explicitPath}) → Future< Directory?> - Locates the fluFrame app template on disk.
-
rewriteTemplateContent(
String content, {required String projectName}) → String -
Rewrites template tokens in
contentfor a project calledprojectName.
Typedefs
-
BundleProvider
= Future<
Directory> Function(String version) -
Provides the
templates/root of a published fluframeversion; injectable so tests can serve local fixtures instead of the network. -
RunProcess
= Future<
ProcessResult> Function(String executable, List<String> arguments, {String? workingDirectory}) - Signature of a process launcher, injectable for tests.