2c2267e5ae
Major Features: - Floating overlay window with system-level persistence - Split decimal display (main speed prominent, decimal smaller/faded) - Optimized content sizing for maximum readability - Navigation icon trigger for overlay activation - Multiple close options (overlay button + long-press navigation) Technical Implementation: - Added flutter_overlay_window dependency - Android SYSTEM_ALERT_WINDOW permissions - Overlay service configuration in AndroidManifest - Enhanced flex ratios for better space utilization - BoxFit.contain for improved content scaling UX Improvements: - Streamlined overlay launch (removed permission prompts) - Cleaner visual hierarchy with split speed display - Responsive design for both portrait and landscape - Professional overlay styling matching app theme 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
3.7 KiB
3.7 KiB
GPS Speedometer - Claude Code Project Memory
Project Overview
A customizable Flutter GPS speedometer app targeting Android devices, emphasizing modularity and user customization.
Current Status: v2.1.0 Complete
GPS speedometer with floating window overlay functionality and optimized visual design.
Architecture Implemented
- State Management: Provider pattern
- Structure: Modular widgets, providers, screens separation
- Persistence: SharedPreferences for settings
- GPS Service: Geolocator with permission handling
- UI Patterns: Consumer widgets, responsive design
Core Features Completed
- Real-time GPS speed tracking with accuracy monitoring
- Customizable speed units (km/h � mph) with persistent storage
- Dual display styles: Digital speedometer + Analog gauge
- Dark/Light theme support with system integration
- Optional metrics panel: coordinates, distance, trip time, accuracy
- Trip reset functionality and comprehensive error handling
- Portrait orientation lock for mobile-first experience
- Android permissions configuration (FINE_LOCATION, COARSE_LOCATION)
Technical Stack
Dependencies: geolocator, permission_handler, provider, shared_preferences, flutter_material_color_picker
Platforms: Android (primary), iOS support included but untested
Architecture: Provider + Consumer pattern for reactive state management
Permissions: Location services with graceful degradation
Recent Updates (v2.1.0)
✅ Completed Features
- Floating Window Overlay: System-level overlay window for persistent speed display
- Split Decimal Display: Main speed prominent, decimal fraction smaller and faded
- Optimized Content Sizing: Maximized readability with improved flex ratios
- Navigation Icon Trigger: Tap compass area to launch floating window
- Multiple Close Options: Overlay close button and long-press navigation area
- Android Permissions: SYSTEM_ALERT_WINDOW and foreground service support
Previous Updates (v1.1)
- Portrait/Landscape Support: Automatic orientation detection implemented
- Interactive Gauge: Click gauge face to switch digital/analog modes
- Extended Speed Units: Added knots support with quick selector buttons
TODO - Future Improvements
Critical Issues
- Dependency Updates: Update 10 packages to latest compatible versions
- Orientation Override: Fix auto-rotate to work regardless of system toggle status
UI/UX Enhancements
- Background Customization: Custom background color selection
- Interface Rearrangement: User-defined layout customization
- Settings Menu Refurbishment: More intuitive interactions and better UX
Technical Improvements
- Font Embedding: Consider custom fonts for better typography
- Feature Removal: Identify and remove unused/redundant functionalities
- Code Cleanup: Refactor deprecated warnings, optimize performance
Design Philosophy
- Preserve modularity for easy future extensions
- Prioritize user customization options
- Maintain clean, extensible architecture
- Focus on mobile-first, gesture-friendly interactions
Development Notes
- Testing: Requires physical Android device for GPS functionality
- Build System: Standard Flutter build process, first builds take time for Android SDK setup
- Memory: Project uses automatic Claude Code memory - this file for major decisions only
- Git: Active repository at
https://github.com/mikkelimatlock/gps_speedo
Code Patterns to Maintain
- Provider pattern for state management
- Separate widgets for reusability
- Settings persistence with SharedPreferences
- Graceful error handling for GPS/permissions
- Responsive design principles