Skip to content

GPS Test Pro is designed to display and analyze real-time GPS/GNSS satellite data on your Android devices.

License

Notifications You must be signed in to change notification settings

cektor/GPSTestPro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GPS Test Pro - Professional GNSS Testing Application

GPS Test Pro Logo

Android API Kotlin Jetpack Compose License

๐Ÿ‡น๐Ÿ‡ท Tรผrkรงe | ๐Ÿ‡ฌ๐Ÿ‡ง English


๐Ÿ“ฑ About

GPS Test Pro is a professional Android application for testing and analyzing GPS/GNSS satellite signals. Developed with modern Android technologies, it provides real-time satellite tracking, signal analysis, and location information.

Built from scratch using Kotlin and Jetpack Compose with a modern MVVM architecture.


โœจ Features

๐Ÿ›ฐ๏ธ Signal Screen

  • Real-time signal strength visualization with bar charts
  • Support for multiple constellations: GPS (USA ๐Ÿ‡บ๐Ÿ‡ธ), GLONASS (Russia ๐Ÿ‡ท๐Ÿ‡บ), GALILEO (EU ๐Ÿ‡ช๐Ÿ‡บ), BEIDOU (China ๐Ÿ‡จ๐Ÿ‡ณ), QZSS (Japan ๐Ÿ‡ฏ๐Ÿ‡ต), IRNSS (India ๐Ÿ‡ฎ๐Ÿ‡ณ), SBAS
  • Color-coded signal quality indicators:
    • ๐ŸŸข Green: Excellent signal (โ‰ฅ30 dB)
    • ๐ŸŸก Yellow: Good signal (20-30 dB)
    • ๐Ÿ”ด Red: Weak signal (<20 dB)
    • โšช Gray: No signal
  • Visual indication of satellites used in position fix (โœ“)
  • Grouped by constellation with country flags

๐ŸŒŒ Sky View Screen

  • Real-time satellite positions on compass view
  • Azimuth and elevation angle visualization
  • Color-coded satellites by signal strength
  • Cardinal directions (N, S, E, W) overlay
  • Interactive satellite selection with highlighting

๐Ÿงญ Compass Screen

  • Sensor-based digital compass with smooth animations
  • Real-time heading display in degrees
  • Cardinal and intercardinal directions (N, NE, E, SE, S, SW, W, NW)
  • Compass calibration status with color indicators:
    • ๐ŸŸข Good: High accuracy
    • ๐ŸŸก Medium: Acceptable accuracy
    • ๐ŸŸ  Low: Needs calibration
    • ๐Ÿ”ด Poor: Calibration required
  • Built-in calibration guide
  • Location information display

๐Ÿ—บ๏ธ Map Screen

  • Real-time location tracking on OpenStreetMap
  • No API key required (uses OSMDroid)
  • Breadcrumb trail showing last 100 locations
  • 5-meter threshold for trail recording
  • Automatic map centering and zoom
  • Works offline with cached tiles

๐Ÿ“Š Data Screen

  • Comprehensive location information:
    • Latitude and Longitude (6 decimal precision)
    • Altitude (meters)
    • Speed (km/h)
    • Accuracy (ยฑmeters)
    • Bearing (degrees)
    • UTC timestamp
  • Satellite statistics:
    • Total visible satellites
    • Satellites used in fix
    • Breakdown by constellation
  • Organized in beautiful Material 3 cards

๐Ÿ” Satellite Details Screen

  • Detailed information for each satellite:
    • Satellite ID (SVID)
    • Constellation type and country
    • Signal strength (C/N0 in dB)
    • Signal quality rating
    • Elevation and azimuth angles
    • Ephemeris and Almanac status
    • Usage in position fix
    • Connection duration tracking
  • Interactive satellite selection
  • Sortable by constellation and ID
  • Full-screen detail dialog

๐Ÿ“ 3D Isometric View

  • Isometric 3D visualization of satellite positions
  • Height-based satellite rendering
  • Color-coded by signal quality
  • Elevation circles (0ยฐ, 30ยฐ, 60ยฐ, 90ยฐ)

๐Ÿ”ฅ Signal Heatmap

  • Signal strength distribution chart
  • Sorted by signal power (strongest to weakest)
  • Visual bar representation
  • Individual satellite signal bars

๐Ÿ“ˆ Satellite Density Map

  • Constellation distribution statistics
  • Usage, quality, and weak signal metrics
  • Visual density bars
  • Per-constellation breakdown

โ„น๏ธ About Screen

  • Application information and version
  • Feature list
  • Developer information
  • Technical specifications
  • Privacy policy link

๐ŸŽจ Design & UI

  • Modern Material 3 Design with dark theme
  • Responsive layouts adapting to different screen sizes:
    • Compact (<600dp): Phones
    • Medium (600-840dp): Large phones, small tablets
    • Expanded (>840dp): Tablets
  • Smooth animations and transitions
  • Animated dropdown menu navigation
  • Professional splash screen with fade-in animation
  • Turkish localization throughout the app

๐Ÿ› ๏ธ Technical Specifications

Technologies

  • Language: Kotlin 1.9.22
  • UI Framework: Jetpack Compose (BOM 2024.02.00)
  • Architecture: MVVM (ViewModel + StateFlow)
  • Minimum SDK: 24 (Android 7.0 Nougat)
  • Target SDK: 35 (Android 15)
  • Compile SDK: 35

Key Libraries

  • Jetpack Compose: Modern declarative UI
  • Material 3: Latest Material Design components
  • Lifecycle & ViewModel: State management
  • Kotlin Coroutines & Flow: Asynchronous operations
  • OSMDroid 6.1.18: OpenStreetMap integration (no API key)
  • Google Play Services Location 21.1.0: GPS/GNSS access
  • Accompanist Permissions: Runtime permission handling

Core Components

  • GnssStatus.Callback: Real-time satellite data
  • LocationManager: GPS location updates
  • SensorManager: Compass and orientation sensors
  • StateFlow: Reactive state management

๐Ÿ“‹ Permissions

<!-- GPS & Location -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

<!-- Sensors (Compass) -->
<uses-permission android:name="android.permission.ACCESS_SENSOR_DATA" />

<!-- Internet & Network (Map tiles) -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<!-- External Storage (OSM cache, Android <=12) -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

๐Ÿš€ Installation & Setup

Prerequisites

  • Android Studio Hedgehog (2023.1.1) or later
  • JDK 17
  • Android SDK 35
  • Gradle 8.7

Steps

  1. Clone the repository

    git clone https://github.com/cektor/GPSTestPro.git
    cd GPSTestPro
  2. Open in Android Studio

    • File โ†’ Open โ†’ Select project folder
    • Wait for Gradle sync
  3. Build the project

    ./gradlew build
  4. Run on device/emulator

    • Connect Android device or start emulator
    • Click Run (โ–ถ๏ธ) or press Shift+F10
  5. Grant permissions

    • Allow location access when prompted
    • Enable GPS/Location services

๏ฟฝ๏ฟฝ Usage

  1. Launch the app - Splash screen appears for 2.5 seconds
  2. Grant location permission - Required for GPS access
  3. Navigate between screens - Use the hamburger menu (โ˜ฐ) in top-right
  4. View satellite signals - Signal screen shows real-time data
  5. Track location - Map screen displays your position with trail
  6. Analyze satellites - Details screen provides in-depth information
  7. Check compass - Compass screen shows heading and calibration
  8. Best results - Use outdoors with clear sky view

๐Ÿ—๏ธ Project Structure

gps_test/
โ”œโ”€โ”€ app/
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ main/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ java/com/alg/gpstestpro/
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ MainActivity.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ model/
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ SatelliteInfo.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ viewmodel/
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ GpsViewModel.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ui/
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ GpsTestApp.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ screens/
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ SplashScreen.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ SignalScreen.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ SkyScreen.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ CompassScreen.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ MapScreen.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ DataScreen.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ SatelliteDetailsScreen.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Satellite3DScreen.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ SignalHeatmapScreen.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ SatelliteDensityScreen.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ AboutScreen.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ theme/
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ Theme.kt
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ utils/
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ ResponsiveUtils.kt
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ res/
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ drawable/
โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ gpslogo.png
โ”‚   โ”‚   โ”‚   โ”‚   โ””๏ฟฝ๏ฟฝ๏ฟฝโ”€ values/
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ AndroidManifest.xml
โ”‚   โ”‚   โ””โ”€โ”€ build.gradle.kts
โ”‚   โ””โ”€โ”€ proguard-rules.pro
โ”œโ”€โ”€ gradle/
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ README-TR.md
โ””โ”€โ”€ privacy_policy.md

๐Ÿ”’ Privacy & Security

GPS Test Pro respects your privacy:

  • โŒ NO personal data collection
  • โŒ NO cloud synchronization
  • โŒ NO third-party analytics
  • โŒ NO advertising
  • โœ… All processing is local
  • โœ… Location data stays on device
  • โœ… Open source and transparent

See Privacy Policy for details. Location data stays on device

  • โœ… Open source and transparent

See Privacy Policy for details.


๐ŸŽฏ Use Cases

  • GPS Testing: Verify GPS functionality on new devices
  • Signal Analysis: Analyze satellite signal quality in different locations
  • Navigation Development: Test location accuracy for navigation apps
  • Outdoor Activities: Check GPS signal before hiking/camping
  • Research & Education: Learn about GNSS constellations
  • Troubleshooting: Diagnose GPS issues on Android devices

๐ŸŒ Supported GNSS Constellations

Constellation Country/Region Satellites Flag
GPS USA 31+ ๐Ÿ‡บ๐Ÿ‡ธ
GLONASS Russia 24+ ๐Ÿ‡ท๐Ÿ‡บ
GALILEO European Union 30+ ๐Ÿ‡ช๐Ÿ‡บ
BEIDOU China 35+ ๐Ÿ‡จ๐Ÿ‡ณ
QZSS Japan 4+ ๐Ÿ‡ฏ๐Ÿ‡ต
IRNSS (NavIC) India 7+ ๐Ÿ‡ฎ๐Ÿ‡ณ
SBAS Various Regional ๐ŸŒ

๐Ÿ“ธ Screenshots

Signal Screen Sky View Compass Map

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is developed for educational purposes.


๐Ÿ‘จโ€๐Ÿ’ป Developer

ALG Yazฤฑlฤฑm & Elektronik Inc.
Fatih ร–NDER


๐Ÿ™ Acknowledgments

  • Android Jetpack Compose team for the amazing UI framework
  • Material Design team for design guidelines
  • OpenStreetMap contributors for map data

๐Ÿ“ž Support

For issues, questions, or suggestions:


๐Ÿ”„ Version History

v1.0.0 (Current)

  • โœ… Initial release
  • โœ… 10 functional screens
  • โœ… Multi-constellation support
  • โœ… Real-time satellite tracking
  • โœ… OpenStreetMap integration
  • โœ… Compass with calibration
  • โœ… Material 3 design
  • โœ… Responsive layouts
  • โœ… Turkish localization

Made with โค๏ธ using Kotlin & Jetpack Compose

โญ Star this repo if you find it useful! โญ

About

GPS Test Pro is designed to display and analyze real-time GPS/GNSS satellite data on your Android devices.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors