Generated by the Very Good CLI 🤖
A web platformer game built with Flutter and Flame.
Play directly in your browser.
This project contains 2 entry points (environments):
- development —
lib/main_dev.dart - production —
lib/main_prod.dart
Run in Chrome:
# Development
flutter run -d chrome -t lib/main_dev.dart
# Production
flutter run -d chrome -t lib/main_prod.dartBuild for deployment:
flutter build web -t lib/main_prod.dartCleanmate Rush is web-only.
The app can be deployed to Amplify Hosting as static Flutter web output (same artifact as Firebase Hosting).
-
Connect the cleanmate repository in Amplify (uses root
amplify.ymlwithappRoot: nebula/cleanmate_rush), or connect only this folder and use the localamplify.ymlhere. -
amplify.ymlinstalls Flutter stable, runsflutter build web, and publishesbuild/web. -
Branch → entry point (override with env var
AMPLIFY_FLUTTER_TARGET):Branch Entry point main(default)lib/main_dev.dartproduction/prodlib/main_prod.dart -
After the first deploy, add the Amplify URL (e.g.
https://main.d1234.amplifyapp.com) under Firebase Console → Authentication → Settings → Authorized domains. -
Ensure
api.cleanmatedao.comallows CORS and WebSocket origins from your Amplify domain.customHttp.ymlapplies the same cache and font CORS headers asfirebase.json.
To run all unit and widget tests use the following command:
flutter test --coverage --test-randomize-ordering-seed randomTo view the generated coverage report you can use lcov.
# Generate Coverage Report
genhtml coverage/lcov.info -o coverage/
# Open coverage/index.html in your browserThis project relies on flutter_localizations and follows the official internationalization guide for Flutter.
- To add a new localizable string, open the
app_en.arbfile atlib/l10n/arb/app_en.arb.
{
"@@locale": "en",
"counterAppBarTitle": "Counter",
"@counterAppBarTitle": {
"description": "Text shown in the AppBar of the Counter Page"
}
}
- Then add a new key/value and description
{
"@@locale": "en",
"counterAppBarTitle": "Counter",
"@counterAppBarTitle": {
"description": "Text shown in the AppBar of the Counter Page"
},
"helloWorld": "Hello World",
"@helloWorld": {
"description": "Hello World Text"
}
}
- Regenerate localizations and use the new string
flutter gen-l10nimport 'package:cleanmate_rush/l10n/l10n.dart';
@override
Widget build(BuildContext context) {
final l10n = context.l10n;
return Text(l10n.helloWorld);
}- For each supported locale, add a new ARB file in
lib/l10n/arb.
├── l10n
│ ├── arb
│ │ ├── app_en.arb
│ │ └── app_es.arb
- Add the translated strings to each
.arbfile and runflutter gen-l10n.