← 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.