An Android application that combines modern GPS tracking capabilities with the Amateur Position Reporting System (APRS) network.
- Live GPS location tracking with Google Maps integration
- Real-time speed, bearing, and road name display
- Trail visualization shows live tracking
- Direction determination based on bearing
- Automatic connection to APRS-IS servers
- Standard-compliant APRS packet formatting
- Configurable update intervals
- TCP/IP APRS-IS authentication & communication
- Custom APRS network message
- API Gateway REST API
- JSON-based position passed to Lambda
- Real-time data updates to AWS RDS
- Support for destination coordinates via text input
- Haversine distance calculation to target
- Update APRS message in real time with distance to destination
AprsService: Manages APRS packet creation + transmissionAwsService: Handles AWS API communication & data persistenceMapsActivity: Controls the user interface & map visualizationLocationRequest: Configures high-precision location updates
- Kotlin: 100% Kotlin usage with modern language standards implemented
- Android Location Services: FusedLocationProvider consumes battery efficiently
- Google Maps SDK: Live mapping & visualization
- Foreground Services: Background operations
- OkHttp: HTTP client for API communication
- APRS Protocol: Standards compliant implementation for APRS radio network integration
- Modular UI, location services, and data transmission
- Efficient background processing & proper lifecycle management
- Eerror handling and reconnection
- Configurable BuildConfig parameters
- Option to store images from trips
- Implement RF APRS transmission capability with Bluetooth
- Add historical track visualization and playback
- Create user-defined symbols and improve custom status UX
- Add more columns and data to AWS RDS
- Implement two-way messaging via APRS messaging
- GeoFences for automatic start / stop tracking
- Smart Beaconing for better battery consumption
Contributions are welcome. Feel free to submit a PR.
