MatatuGo is an Android mobile application designed to enhance the experience of using Matatus in Kenya. The app provides users with route planning, navigation, and relevant transport information to make commuting easier and more efficient.
- Project Overview
- Key Features
- Architecture
- Key Code and Components
- Dependencies
- Coroutines Usage
- Getting Started
- Build and Run
- Authors
- Screenshots
MatatuGo is built using Kotlin and follows modern Android development practices. The project leverages Android Jetpack components, MVVM architecture, and uses coroutines for asynchronous operations.
- Matatu information
- Route planning and navigation
- User-friendly interface
- Integration with Android location services
- Language: Kotlin
- Architecture Pattern: MVVM (Model-View-ViewModel)
- UI: Android XML layouts
- Asynchronous Operations: Kotlin Coroutines
- Dependency Management: Gradle
app/src/main/java/: Contains all the source code for activities, view models, repositories, and utilities.app/src/main/res/: Contains resources such as layouts, drawables, and values.app/src/main/AndroidManifest.xml: App manifest file.build.gradle.kts: Project and app-level Gradle build scripts.
The project uses several key dependencies (see build.gradle.kts for the full list):
- AndroidX libraries (AppCompat, Lifecycle, Navigation)
- Kotlin Standard Library
- Material Components
- Retrofit, Room, and other Jetpack libraries
- Coroutine libraries for async operations
What is a Coroutine? A coroutine is a concurrency design pattern in Kotlin that allows you to write asynchronous code in a sequential manner. Coroutines help manage background tasks such as network requests or database operations without blocking the main thread.
Are Coroutines Used in This Project? Yes. Coroutines are used for background operations.
- Clone the repository:
git clone <repository-url> - Open in Android Studio.
- Sync Gradle and build the project.
- Run the app on an emulator or physical device.
- Use the provided
gradleworgradlew.batscripts to build the project:./gradlew assembleDebug - To install and run on a connected device:
./gradlew installDebug
- Splash Screen
- Home Page
- Picking the best Route
- Navigating to the Desired Location
- No Route Found
- Profile Page
- App Icon






