A modern Android delivery tracking application built with Jetpack Compose and following Clean Architecture principles. The app provides a seamless experience for tracking deliveries with features like real-time updates, offline support, and a beautiful Material 3 design.
- Modern UI/UX: Built with Material 3 design principles and Jetpack Compose
- Clean Architecture: Follows MVVM pattern with Clean Architecture principles
- Offline Support: Local caching using Room database
- Responsive Design: Supports different screen sizes and orientations
- Dark/Light Theme: Dynamic theming with Material You support
- Error Handling: Comprehensive error handling with user-friendly messages
- Pagination: Efficient loading of large delivery lists
- Favorite System: Mark deliveries as favorites with persistent storage
- Network State: Handles various network states gracefully
- Unit Testing: Comprehensive test coverage for business logic
- UI Testing: Automated UI tests using Compose testing framework
The application follows Clean Architecture principles with a clear separation of concerns:
app/
├── data/ # Data layer with repositories and data sources
│ ├── api/ # Remote API interfaces and models
│ ├── db/ # Local database using Room
│ ├── mapper/ # Data mapping between layers
│ └── repository/ # Repository implementations
├── domain/ # Business logic and domain models
│ ├── model/ # Domain entities
│ ├── repository/ # Repository interfaces
│ └── usecase/ # Use cases for business operations
└── presentation/ # UI layer with screens and viewmodels
├── components/ # Reusable UI components
├── navigation/ # Navigation handling
└── screens/ # Individual screen implementations
- Kotlin: Primary programming language
- Jetpack Compose: Modern UI toolkit
- Material 3: Design system
- Coroutines & Flow: Asynchronous programming
- Navigation Compose: In-app navigation
- ViewModel: UI state management
- Room: Local database
- Hilt: Dependency injection
- Retrofit: HTTP client
- OkHttp: Networking
- Gson: JSON parsing
- Coil: Image loading
- JUnit: Unit testing
- Mockito: Mocking framework
- MockK: Kotlin mocking
- Turbine: Flow testing
- Compose Testing: UI testing
- Hilt Testing: DI testing
- Android Studio Hedgehog | 2023.1.1 or newer
- JDK 17
- Android SDK 34
- Gradle 8.10
- Clone the repository
- Open the project in Android Studio
- Run
./gradlew buildto build the project - Run the app on an emulator or physical device
The project includes both unit tests and instrumentation tests:
./gradlew test./gradlew connectedAndroidTestThe application is built with production readiness in mind:
- Code Quality: Follows clean code principles with proper documentation
- Error Handling: Comprehensive error handling throughout the app
- Performance: Optimized image loading and caching
- Testing: Extensive test coverage
- Maintainability: Clear architecture and code structure
- Scalability: Modular design for easy feature additions
- Security: Proper handling of sensitive data
- Accessibility: Support for different screen sizes and orientations
- Minimum SDK: Android 7 (API 24)
- Target SDK: Android 14 (API 34)
- Supports both phones and tablets
- Handles different screen sizes and orientations
- Supports both light and dark themes
Feel free to open issues and pull requests for any improvements you want to add.
This project is licensed under the MIT License - see the LICENSE file for details.







