Creates the app skeleton and the seam everything else in the project hangs off: region-specific data lives in an asset file, not in code, so adding a region later is a new JSON file rather than a refactor. Notable choices: - applicationId and namespace are it.nuvolari.app rather than the doubled it.nuvolari.nuvolari that `flutter create` produces, with the Kotlin package and the iOS bundle identifiers moved to match. - SDK levels are pinned instead of inherited from `flutter.*`. Google Play requires API 36, and that is a release blocker rather than something to let a Flutter upgrade change silently. minSdk 24 is the highest floor the planned dependencies impose. - Riverpod and Dio-free for now, no code generation: see docs/stack-decisions.md. - Italian is the l10n source language, so app_it.arb is the template rather than a translation of an English original. The region parser rejects rather than repairs. An inverted bounding box, a map centre outside its own bounds, an unknown adapter name, a duplicate zone code or an empty attribution list all throw with the offending field named. Each of those would otherwise fail silently and visibly wrong: a swapped latitude and longitude renders the radar in the wrong place, an unknown adapter falling back to mock would show demo frames where live data was expected, and a missing attribution is a licence violation rather than a cosmetic gap. Tests run against the asset that actually ships and against a captured copy of the live ARPA CAP feed, so the eleven zone codes in the config are checked against the eleven the feed really emits rather than against a list retyped from documentation. Verified: dart format clean, flutter analyze 0 issues, 50 tests passing, flutter build appbundle --debug produces an AAB with applicationId it.nuvolari.app, minSdk 24, targetSdk 36. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
52 lines
859 B
Plaintext
52 lines
859 B
Plaintext
# Miscellaneous
|
|
*.class
|
|
*.log
|
|
*.pyc
|
|
*.swp
|
|
.DS_Store
|
|
.atom/
|
|
.build/
|
|
.buildlog/
|
|
.history
|
|
.svn/
|
|
.swiftpm/
|
|
migrate_working_dir/
|
|
|
|
# IntelliJ related
|
|
*.iml
|
|
*.ipr
|
|
*.iws
|
|
.idea/
|
|
|
|
# The .vscode folder contains launch configuration and tasks you configure in
|
|
# VS Code which you may wish to be included in version control, so this line
|
|
# is commented out by default.
|
|
#.vscode/
|
|
|
|
# Flutter/Dart/Pub related
|
|
**/doc/api/
|
|
**/ios/Flutter/.last_build_id
|
|
.dart_tool/
|
|
.flutter-plugins-dependencies
|
|
.pub-cache/
|
|
.pub/
|
|
/build/
|
|
/coverage/
|
|
|
|
# Symbolication related
|
|
app.*.symbols
|
|
|
|
# Obfuscation related
|
|
app.*.map.json
|
|
|
|
# Android Studio will place build artifacts here
|
|
/android/app/debug
|
|
/android/app/profile
|
|
/android/app/release
|
|
|
|
# Widget Preview related
|
|
.widget_preview/
|
|
|
|
# Generated from lib/l10n/*.arb by the Flutter tool during `flutter pub get`.
|
|
/lib/l10n/app_localizations*.dart
|