Shuffle/app/README.md
cschlaefke e5df79ee0a feat(app): add Flutter scaffold with config, logging, routing and l10n
Refs #31

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-02 20:17:24 +01:00

1.9 KiB
Raw Blame History

Shuffle – Flutter-App

Brettspiel-App für iOS, Android und Web (eine Codebasis). Architektur und Konventionen: ../CLAUDE.md, ../docs/adr/.

Struktur

lib/
  core/        config, logging, error, result, supabase, routing, l10n, theme
  features/    <feature>/{data,domain,presentation}
  l10n/        app_de.arb, app_en.arb (+ generierte AppLocalizations)
test/          Spiegel von lib/
env/           *.example.json (echte Umgebungsdateien sind git-ignoriert)

Starten

cd app
flutter pub get
cp env/dev.example.json env/dev.json     # Werte anpassen
dart run build_runner build --delete-conflicting-outputs
flutter run -d chrome --dart-define-from-file=env/dev.json

Pflichtwerte: SUPABASE_URL, SUPABASE_ANON_KEY (der Start bricht ohne sie ab). Optional mit Platzhalter: SITE_URL, LEGAL_PRIVACY_URL, LEGAL_TERMS_URL, TERMS_VERSION, APP_ENV.

Platzhalter-Identität (vor dem Store-Release festlegen)

Was Wo ändern
Bundle-/Application-ID work.cshomelabs.shuffle android/app/build.gradle.kts (namespace, applicationId), Kotlin-Package unter android/app/src/main/kotlin/, ios/Runner.xcodeproj/project.pbxproj (PRODUCT_BUNDLE_IDENTIFIER)
App-Name „Shuffle“ android/app/src/main/AndroidManifest.xml, ios/Runner/Info.plist, web/index.html, web/manifest.json, l10n-Schlüssel appTitle
Web-Domain, Rechtstexte, Version der Rechtstexte env/*.json (SITE_URL, LEGAL_*, TERMS_VERSION)

Die Bundle-ID lässt sich nach der ersten Store-Veröffentlichung nicht mehr ändern.

Hinweise

  • Generierte Dateien (*.g.dart, lib/l10n/app_localizations*.dart) werden mit eingecheckt; nach Änderungen an @riverpod-Code oder ARB-Dateien neu erzeugen (build_runner, flutter gen-l10n).
  • Web-URLs ohne # (usePathUrlStrategy): der Webserver braucht eine SPA-Rewrite-Regel (alle Pfade auf index.html).