a686e6b0fb
- STACK.md - Technologies and dependencies - ARCHITECTURE.md - System design and patterns - STRUCTURE.md - Directory layout - CONVENTIONS.md - Code style and patterns - TESTING.md - Test structure - INTEGRATIONS.md - External services - CONCERNS.md - Technical debt and issues
4.8 KiB
4.8 KiB
Technology Stack
Analysis Date: 2026-02-09
Languages
Primary:
- Dart 3.9.0+ - Flutter app logic, services, UI widgets
- Kotlin - Android native bridge and plugin implementations
- Swift - iOS native bridge (untested)
Secondary:
- XML - Android manifest and resource files
- YAML - Flutter configuration and package management
- XML/Plist - iOS configuration
Runtime
Environment:
- Flutter 3.24.0+ (SDK)
- Android Runtime (API 21+, configured via Gradle)
- iOS Runtime (optional, iOS 12.0+)
Package Manager:
- Pub (Dart package manager)
- Lockfile:
pubspec.lock(present) - Direct dependencies resolved from
pub.dev
Frameworks
Core:
- Flutter 0.0.0 - UI framework and cross-platform mobile development
- Material Design 3 - Flutter Material Design components with
useMaterial3: true
Testing:
- Flutter Test SDK - Unit and widget testing framework (included in Flutter SDK)
- flutter_lints 6.0.0 - Linting rules for code quality
Build/Dev:
- flutter_launcher_icons 0.14.4 - Icon generation for Android and iOS
- Gradle (Kotlin DSL) - Android build system configured in
android/app/build.gradle.kts
Key Dependencies
Critical:
- geolocator 14.0.2 - GPS positioning and real-time location streaming with heading/speed data
- Platform-specific implementations: geolocator_android, geolocator_apple, geolocator_linux, geolocator_web, geolocator_windows
- Transitive: geolocator_platform_interface 4.2.6
- permission_handler 12.0.1 - Runtime permissions management (location, overlay window)
- Platform-specific: permission_handler_android, permission_handler_apple, permission_handler_windows, permission_handler_html
Infrastructure:
- wakelock_plus 1.3.2 - Keeps device screen/CPU awake during GPS tracking
- Transitive: wakelock_plus_platform_interface 1.2.3
- flutter_overlay_window 0.5.0 - System-level floating window overlay for GPS data display
- Core overlay service:
flutter.overlay.window.flutter_overlay_window.OverlayService
- Core overlay service:
- bg_launcher 0.1.0 - Brings app to foreground from background or overlay state
Utilities:
- http 1.5.0 (transitive) - HTTP client library (included as dependency of other packages)
- package_info_plus 8.3.1 (transitive) - App version and package info
- uuid 4.5.1 (transitive) - UUID generation for identifiers
- meta 1.16.0 (transitive) - Dart language annotations
Development Utilities:
- archive 4.0.7 - For launcher icon generation
- image 4.5.4 - Image processing for icons
- json_annotation 4.9.0 - JSON serialization support
Configuration
Environment:
- No
.envfiles or environment variable configuration detected - Configuration is hardcoded in Dart code and managed through SharedPreferences during runtime
- Key runtime settings:
- Speed units (km/h, mph, knots) stored in app state
- Theme selection (dark/light) managed in state
- Location service permissions checked at runtime
Build:
- Android build configuration:
android/app/build.gradle.kts- Namespace:
com.novoyuuparosk.speedo - Min SDK: Flutter default
- Target SDK: Flutter default
- Source/Target Compatibility: Java 11
- JVM Target: Java 11 (Kotlin)
- Namespace:
- iOS build configuration:
ios/Runner/Info.plist- Bundle ID:
$(PRODUCT_BUNDLE_IDENTIFIER) - Supported orientations: Portrait, Landscape (Left/Right), Portrait Upside Down (iPad)
- Bundle ID:
Icon Configuration:
- flutter_launcher_icons configuration in pubspec.yaml
- Source image:
icon/speedo.png - Generates both Android and iOS icons with adaptive icon support
- Adaptive foreground:
icon/speedo.png
- Source image:
Fonts:
- Custom font: DIN1451Alt
- Asset file:
fonts/din1451alt.ttf - Used for speedometer display typography
- Asset file:
Platform Requirements
Development:
- Flutter SDK 3.24.0 or later
- Dart 3.9.0 or later
- Android development environment with Gradle
- Kotlin compiler (for Android native code)
- Physical Android device or emulator with GPS simulation (recommended: physical device for accurate GPS)
Production:
- Android 5.0+ (API 21+) for primary platform
- iOS 12.0+ (secondary/untested platform)
- Foreground service capability (Android 12+)
- System alert window permission (for overlay functionality)
- Location services enabled on device
- Screen wake lock capability for continuous monitoring
Permissions & Capabilities:
- Runtime permissions:
ACCESS_FINE_LOCATION- High-precision GPSACCESS_COARSE_LOCATION- Network-based location fallbackACCESS_BACKGROUND_LOCATION- Background location access (optional)SYSTEM_ALERT_WINDOW- Floating overlay windowFOREGROUND_SERVICE- Background service requirementFOREGROUND_SERVICE_SPECIAL_USE- Overlay service special useWAKE_LOCK- Keep device awakeREQUEST_IGNORE_BATTERY_OPTIMIZATIONS- Battery optimization bypass
Stack analysis: 2026-02-09