Scaffold the Flutter app with Italian l10n and region configuration
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>
This commit is contained in:
@@ -7,7 +7,7 @@ Legend: ✅ done · 🔨 in progress · ⛔ blocked on credentials from the proj
|
||||
|
||||
---
|
||||
|
||||
## M0 — Toolchain and repository hygiene 🔨
|
||||
## M0 — Toolchain and repository hygiene ✅
|
||||
|
||||
Flutter 3.47.3 stable, Android SDK (platform-tools, platform 36, build-tools 36.0.0),
|
||||
JDK 21, environment variables. Commit the removal of the old Xamarin skeleton.
|
||||
@@ -15,7 +15,13 @@ JDK 21, environment variables. Commit the removal of the old Xamarin skeleton.
|
||||
**Accepts when:** `flutter doctor -v` reports no blocking Android toolchain error and
|
||||
`git status` is clean.
|
||||
|
||||
## M1 — Scaffold, Italian l10n, region config, CI
|
||||
**Done.** `flutter doctor -v` reports "No issues found!". Installed: Flutter 3.47.3 at
|
||||
`C:\src\flutter` (telemetry disabled), Android SDK at `C:\Android\Sdk` with
|
||||
platform 36, build-tools 36.0.0, platform-tools and all licences accepted, and
|
||||
`JAVA_HOME` pointing at the JDK 21 a previous Visual Studio install had already left
|
||||
on the machine.
|
||||
|
||||
## M1 — Scaffold, Italian l10n, region config, CI 🔨
|
||||
|
||||
`flutter create` with applicationId `it.nuvolari.app`; `flutter_localizations` + `intl`
|
||||
with `app_it.arb` as template and no hardcoded UI strings; `RegionConfig` loaded from
|
||||
|
||||
Reference in New Issue
Block a user