fluframe 1.0.0
fluframe: ^1.0.0 copied to clipboard
Generate production-ready Flutter apps from the fluFrame boilerplate — Riverpod 3, go_router, localization, theming, dio, and tests wired out of the box.
Changelog #
1.0.0 #
Stability declaration — fluframe now follows semantic versioning
against a documented public contract (see docs/versioning.md in the
repository): CLI surface, generation guarantees, rename tokens,
.fluframe.json schema, the stackable addon mechanism, and the upgrade
path.
fluframe upgrade [--apply] [--from]— pull template updates into an existing app via a per-file three-way merge (base reconstructed from the pub.dev archive of the version the app was generated with); dry-run by default, git conflict markers, removals reported but never auto-deleted.createnow records generation metadata (.fluframe.json, schema 1: version + addon combo) — the contractupgradereads.--analytics amplitude— wires the analytics seam to Amplitude with an API-key-guarded provider swap; stackable with--backendand--error-reporting.
0.12.0 #
- Template: analytics seam — an
AnalyticsServiceinterface with a debug-logging default, automatic screen-view tracking for every navigation (bottom tabs included), and a sample domain event. Swap one provider to wire a real product-analytics SDK;--analyticsaddons are next on the roadmap.
0.11.0 #
--error-reporting sentry: wires sentry_flutter into the template's error hooks with DSN-guarded initialization (emptySENTRY_DSNkeeps Sentry disabled, so fresh apps run untouched). Stackable with--backend, e.g.fluframe create my_app --backend supabase --error-reporting sentry.
0.10.0 #
- Template: Japanese localization (full
app_ja.arb+ language picker entry) alongside English and Korean;FluFrame アプリjoins the rename tokens so generated apps stay unbranded in every locale. - Template: sixth theme preset (teal).
0.9.0 #
- Template: global error handling hooks —
FlutterError.onErrorandplatformDispatcher.onErrorroute every uncaught error through one documented file (core/logging/error_handlers.dart), the exact seam for wiring Sentry/Crashlytics later.
0.8.0 #
- Template: offline fallback cache for the posts sample — the last successful response is persisted and served automatically when the network fails, demonstrating the repository-decorator pattern with zero new dependencies.
0.7.1 #
- Actually ships the theme color presets announced in 0.7.0 — a release-ordering mistake published 0.7.0 from a commit that did not yet contain them. No other changes.
0.7.0 #
⚠️ Published without the preset feature described below — use 0.7.1.
- Template: five selectable theme color presets (persisted) join the existing light/dark mode — pick Indigo/Emerald/Crimson/Amber/Violet in Settings, survives restarts.
0.6.0 #
fluframe doctor: one command to verify the machine can generate and run fluFrame apps — Flutter/Dart/git probes with actionable fixes and a template-bundle check.
0.5.0 #
--backend firebase: generate an app with Firebase Auth wired into the auth seam. Ships a compile-safeDefaultFirebaseOptionsstub that throws with clear guidance until you runflutterfire configure— honest about the one step that cannot be automated.
0.4.0 #
--backend supabase: generate an app with Supabase Auth already wired into the auth seam —SupabaseAuthRepository, env-based configuration (SUPABASE_URL/SUPABASE_PUBLISHABLE_KEYvia--dart-define-from-file), and setup notes. The generated app's test suite stays green and offline regardless of backend.- Backend addon mechanism (ADR 0001): dependencies via
flutter pub add, bundled addon files, and anchored patches that fail loudly if the template and addon ever drift apart.
0.3.0 #
- Backend-neutral auth scaffold in the generated app (zero new
dependencies): email/password login screen with validation, auth-gated
profile tab, GoRouter redirect with return-path, and a session that
survives restarts — all behind a single
AuthRepositoryseam. - Swap-in guides for Supabase and Firebase auth (one provider
override) in the repository's
docs/guides/.
0.2.0 #
--orgis now validated before anything runs: malformed identifiers (spaces, digit-leading or empty segments) produce a clear usage error instead of a downstreamflutter createfailure.- A missing Flutter SDK now prints a friendly message with the install
guide and exits 69, instead of dying with a raw
ProcessException— on both the direct-spawn and Windows shell paths.
0.1.0 #
- Initial release.
fluframe create <name>scaffolds a production-ready Flutter app:- Riverpod 3 (manual notifiers), go_router
StatefulShellRoutetabs - freezed 3 + json_serializable models, dio with typed error mapping
- Localization (en/ko) via
flutter gen-l10n, Material 3 light/dark themes - Persisted settings (
SharedPreferencesAsyncbehind aKeyValueStore) --dart-define-from-fileflavors, very_good_analysis, unit + widget tests
- Riverpod 3 (manual notifiers), go_router
- Options:
--org,--description,--output-directory,--platforms,--no-pub.