Schedule people to use the tennis court.
Para leer el README en espaΓ±ol Clic aqui
- Schedule tennis courts up to 3 people per day
- Shows the schedules from the current day onwards
- Automatically deletes past schedules
- Query the AccuWeather API and store the data in cache
- Shows the probability of rain from the current day to 4 days ahead
- 100% unit test/widget coverage
- English and Spanish locales support
Install "derry" package to use scripts in the pubspec.yaml
file.
dart pub global activate derry
or run the commands without the script manager mannualy replacing "derry" for the command.
Then get the dependencies with:
flutter pub get
Remember to set the .env
file, there is an example example.env
you require create an app in AccuWeather to obtain an apikey.
API_URL=<AccuWeather API URL>
API_KEY_WEATHER=<AccuWeather apikey>
And generate the aditional code with build_runner
derry codegen
# or
dart run build_runner build
And you are ready run
This project contains 3 flavors:
- development
- staging
- production
To run the desired flavor either use the launch configuration in VSCode/Android Studio or use the following commands:
# Development
flutter run --flavor development --target lib/main_development.dart
# Staging
flutter run --flavor staging --target lib/main_staging.dart
# Production
flutter run --flavor production --target lib/main_production.dart
To build is the same as run
flutter build apk --flavor production --target lib/main_production.dart
To run all unit and widget tests use the following command:
derry update-coverage
To view the generated coverage report you can use lcov.
derry open-coverage-report
This project relies on flutter_localizations and follows the official internationalization guide for Flutter.
- To add a new localizable string, open the
app_en.arb
file 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"
}
}
- Use the new string
import 'package:tennis_court_scheduling/l10n/l10n.dart';
@override
Widget build(BuildContext context) {
final l10n = context.l10n;
return Text(l10n.helloWorld);
}
Update the CFBundleLocalizations
array in the Info.plist
at ios/Runner/Info.plist
to include the new locale.
...
<key>CFBundleLocalizations</key>
<array>
<string>en</string>
<string>es</string>
</array>
...
- 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
.arb
file:
app_en.arb
{
"@@locale": "en",
"counterAppBarTitle": "Counter",
"@counterAppBarTitle": {
"description": "Text shown in the AppBar of the Counter Page"
}
}
```com.andrexi.tennis_court_scheduling
com.andrexi.tennis_court_scheduling
`app_es.arb`
```arb
{
"@@locale": "es",
"counterAppBarTitle": "Contador",
"@counterAppBarTitle": {
"description": "Texto mostrado en la AppBar de la pΓ‘gina del contador"
}
}
You can change app icon configuration for each flavor in the files flutter_launcher_icons-<flavor>
and then run:
dart run flutter_launcher_icons
To update the splash screen using flutter_native_splash run:
derry update-splash
Simply run the following command that contains all the steps to do that.
derry update-coverage