|
All checks were successful
Refs #41 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| android | ||
| assets/security | ||
| env | ||
| ios | ||
| lib | ||
| test | ||
| web | ||
| .gitignore | ||
| .metadata | ||
| analysis_options.yaml | ||
| l10n.yaml | ||
| pubspec.lock | ||
| pubspec.yaml | ||
| README.md | ||
| THIRD_PARTY.md | ||
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 (Default http://localhost:3000; für Staging/Prod zwingend setzen, sonst zeigen Mail-Links auf localhost), 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 aufindex.html).