5 Commits

Author SHA1 Message Date
mikkeli 34be47db82 build(android): move to Flutter 3.47 template toolchain (Gradle 9.3.1 / AGP 9.1.0 / Kotlin 2.4.0)
The project pinned Gradle 8.12 / AGP 8.9.1 / Kotlin 2.1.0, all three below the
hard error floors that Flutter 3.47.1 enforces in DependencyVersionChecker.kt
(8.14.0 / 8.11.1 / 2.2.20). Nothing here had rotted; the SDK moved.

Targets Flutter's own template defaults rather than the lowest combo that
clears the floors, because Flutter promotes its warn floor to the error floor
in the very next release -- clearing only the hard floor buys one release of
runway. `flutter-android-preflight` on the host re-derives all of this from
the installed SDK.

Also:
- kotlinOptions{} -> kotlin{compilerOptions{}}: the old DSL is a script
  COMPILATION error under Kotlin >= 2.3, not a warning.
- Java/jvmTarget 11 -> 17.
- Drop android.enableJetifier (obsolete, removed outright in AGP 9). Keep the
  migrator's builtInKotlin=false: builtInKotlin=true makes AGP 9.1.0 supply
  Kotlin 2.2.10, BELOW Flutter's own 2.2.20 floor, so Flutter rejects its own
  recommendation.

This app has no native plugins, so it needed none of the pub-plugin
workarounds gps-speedo did.

Verified: flutter build apk --debug and --release, as both mikkeli and hermes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016dKAqFo9Uj3mPZWvDzj3G8
2026-08-23 11:56:29 +09:00
Mikkeli Matlock bb7b1cf6b2 Implement comprehensive localization framework with English and Finnish support
- Add flutter_localizations dependency and l10n configuration
- Create ARB files for English (en) and Finnish (fi) translations
- Localize UI strings across all major components:
  * Navigation drawer and page titles
  * Scoring interface (arrows per end, ruleset names)
  * Scorecard headers (End, Arrows, Sum of 3/6, Accumulative)
  * Keypad functional buttons (CLEAR/TYHJENNÄ, CLOSE/SULJE)
  * Settings page placeholder content
  * Dialog messages and confirmation prompts
- Preserve universal archery scoring notation (X, 10, 9, M remain unlocalised)
- Use authentic Finnish archery terminology throughout
- Configure main app with proper localization delegates and supported locales
- Generate localization classes automatically via flutter_localizations

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-24 20:47:16 +09:00
Mikkeli Matlock a1642c1fe7 Upgraded Flutter dependencies 2025-08-23 01:41:27 +09:00
Mikkeli Matlock 78753071d0 Update flutter_lints to 6.0.0 and fix widget tests
- Upgrade flutter_lints from 5.0.0 to 6.0.0
- Fix widget test to reference correct app class (ArcheryBookkeeperApp)
- Update widget test to check for actual app title "Archery Scoring"
- Clean up project description in pubspec.yaml

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-23 00:31:08 +09:00
Mikkeli Matlock 631a186dfd Restructured to use Flutter. Mockup UIs 2025-08-22 23:42:12 +09:00