A production-ready Flutter application demonstrating a high-fidelity, Uber-style live tracking screen. This project focuses on pixel-perfect UI execution, reactive state management, and advanced map animations.
- Smooth Marker Animation: Built a custom interpolation engine inside the repository layer. It calculates microscopic sub-segments between real-world OSRM GPS coordinates and yields updates at ~30 FPS, resulting in buttery-smooth, realistic marker movement.
- Stream-Based Reactive Architecture: The entire tracking system is powered by a
Stream<LocationEntity>managed by Riverpod. While currently simulating data over a route, the architecture is 100% plug-and-play ready for a real-time WebSocket connection without changing any UI code. - Custom Premium Map Styling: Utilized
flutter_mapto strip away default Google Map constraints. Includes a Dark/Light Mode Toggle that seamlessly swaps out standard map tiles for premium CartoDB Dark Matter tiles, providing stunning contrast for the tracking UI. - Free-Floating Draggable UI: The
BottomInfoSheetis a custom-built, fully draggable floating widget. Users can grab the drag handle (or anywhere on the sheet) and dynamically move it around the screen to inspect the map underneath. - Pixel-Perfect UI & Typography: Strict adherence to the provided Figma design specs, utilizing the Inter font family, customized timeline indicators, and dynamic state-driven styling.
- Framework: Flutter
- Architecture: Clean Architecture + MVVM
- State Management: Riverpod (
flutter_riverpod) - Maps:
flutter_mapwithlatlong2
Demo Video: *[Video Here
WhatsApp.Video.2026-04-29.at.2.35.47.PM.mp4
]*
Download APK: [Link to APK Here]
- Clean Architecture: Strict separation of concerns. The
TrackingRepositoryImplhandles data generation and coordinate interpolation, the ViewModel (TrackingViewModel) processes state, and the UI reacts purely to changes. - Widget Granularity: Complex UI components (like the dynamic Timeline) are broken down into isolated builder methods and custom widgets (like the
DraggableFloatingSheet) to ensure the tree remains highly readable and performant. - Proprietary Protection: This repository is provided without an open-source license (All Rights Reserved) to protect the proprietary nature of this assessment.
To run this project locally:
- Clone the repository
- Run
flutter pub getto install dependencies - Connect an Android/iOS device or emulator
- Run
flutter run
To generate a production APK:
flutter build apk --debugDeveloped by Christian Shipa