← Back to work[WEB2]

Fake GPS

A production-grade Flutter Android app for GPS testing and development, built with clean architecture and native Kotlin, featuring route planning, geofence testing, and biometric security.

Fake GPS  cover screenshot

Fake Gps is a production-grade Android application built with Flutter that lets developers, QA engineers, and researchers change a device's GPS location using Android's official Mock Location Provider API. It was designed as a legitimate developer tool for testing location-based features, reproducing GPS-dependent bugs, and protecting personal location privacy, not for bypassing third-party verification systems.

The app follows a strict feature-first clean architecture with a pure Dart domain layer, Riverpod for state management, and a native Kotlin platform layer that communicates with Flutter through method and event channels. Location changes are always paired with a persistent, non-dismissable notification. Every session is transparent by design, with no silent background mode.

Core capabilities include an interactive map with a 360 degree joystick for real-time manual movement, multi-waypoint route planning with realistic GPS noise simulation, a live instrument strip showing coordinates, speed, and accuracy, saved favorites, full session history, GPX import and export, a route recorder that captures real device movement for repeatable QA regression testing, a geofence testing tool with live ENTER and EXIT event detection, biometric app lock, a Quick Settings tile for one tap toggling, and encrypted backup and restore.

The codebase runs on a local SQLite database managed with Drift across multiple schema migrations, supports Indonesian and English through full localization, and includes a domain layer covered by unit tests. It was built with an emphasis on production readiness rather than a proof of concept.

Published

August 2026

Stack

  • Flutter
  • Dart
  • Kotlin
  • Riverpod
  • go_router
  • flutter_map
  • Drift (SQLite)
  • flutter_secure_storage
  • Android Mock Location Provider API
  • Android Foreground Service
  • TileService
  • MethodChannel
  • EventChannel
  • Nominatim
  • OpenStreetMap
  • geolocator
  • local_auth
  • permission_handler
  • file_picker
  • share_plus
  • XML/GPX
  • intl
  • Material 3
  • Google Fonts
  • Phosphor Icons
  • Gradle
  • GitHub Actions CI