refactor: layered architecture (core/data/ui separation) #1
Reference in New Issue
Block a user
Delete Branch "refactor/flutter-architecture"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Restructure gps-speedo into a strict layered architecture following separation of concerns.
Architecture (new)
What changed
Verification
7a58483)Delete old flat files, wire new DI in main.dart: - Removed: gps_service.dart, config/, models/, providers/overlay_provider.dart, screens/, services/gps_data_manager.dart, services/overlay_service.dart - Kept: settings_provider.dart (thin, correct), logger.dart (shared util) - main.dart now wires: LocationRepository → SpeedometerViewModel → SpeedometerView - overlay_provider.dart deferred, stub in ui/features/overlay/ - flutter analyze: 30 info-level constant_identifier_names warnings (project convention), zero errors, zero warnings — builds clean New structure: lib/ core/constants/ — gps, overlay, timing, speed_unit core/theme/ — color_themes data/ models/ — LocationData (immutable domain model) services/ — GpsService (stateless wrapper), OverlayService (IPC) repositories/ — LocationRepository (business logic, ChangeNotifier) providers/ — SettingsProvider (thin, unchanged) ui/ features/ speedometer/ — SpeedometerViewModel + SpeedometerView overlay/ — Stub ViewModel + View (deferred) shared/ — SpeedDisplay widget services/ — Logger (shared util)