This project is a simple Android application that demonstrates the use of modern Android development practices. The app fetches the user's live location and displays it on a map with a taxi icon as a marker. The project is built using Kotlin and Jetpack Compose, following the Clean + MVI architecture, and supports both Dark and Light themes.
You can find the project prototype over here
- Live Location Tracking: The app continuously fetches the user's location using a foreground service.
- Map Integration: The user's location is displayed on a map using Mapbox or MapLibre, with a custom taxi icon marker.
- Data Persistence: Each location update is stored in a local database for future reference.
- Responsive UI: The UI is designed to adapt to different screen sizes and orientations, ensuring a consistent experience across devices.
- Theming: The app supports both Dark and Light themes, providing a seamless experience in different lighting conditions.
- Kotlin: Used for all programming logic.
- Jetpack Compose: For building the UI components.
- Mapbox: For map rendering and displaying the user's location.
- Clean + MVI Architecture: Ensuring a scalable and maintainable codebase.
- Foreground Service: To keep tracking the user's location even when the app is in the background.
- Local Database: For storing the user's location data.
- Minimum Android Version: Android 7.0 (API Level 24)
- Device Orientation: Portrait mode only
-
Clone this repository:
git clone https://github.com/otamurod/MyTaxi.git cd MyTaxi
-
Open the project in Android Studio.
-
Add keystore.properties gradle file at root project directory. Add your MAPBOX_DOWNLOADS_SECRET_TOKEN there
-
Build the project and run it on an Android device or emulator.