An Android application for monitoring data indicators from an external API. Built with Kotlin, MVVM, Clean Architecture, and Retrofit, the app features real-time data fetching, modularization, and best practices for modern Android development.
- Display a dashboard with a list of monitored indicators.
- Individual indicator detail screens with live data.
- Loading indicators and error handling.
- Structured with clean architecture and layer separation.
- Dependency injection via Hilt.
- Networking handled by Retrofit & OkHttp.
- Asynchronous operations using Kotlin Coroutines.
- UI implemented using XML layouts with ViewBinding.
- Language: Kotlin
- UI: XML layouts + ViewBinding
- Architecture: Clean Architecture + MVVM
- DI: Hilt
- Networking: Retrofit, OkHttp
- Async: Coroutines
- Layers/layout: data, domain, presentation
monitoring_app/
βββ app/ # Application module
βββ data/ # DTOs, API services, repository implementations
βββ domain/ # Core models and repository interfaces
βββ presentation/ # Activities, ViewModels, UI logic
βββ di/ # Hilt dependency injection setup
- Clone the repository:
git clone https://github.com/Daztery/monitoring_app.git
- Open the project in Android Studio (Electric Eel or newer).
- Add your API base URL or key in
local.propertiesor useBuildConfig. - Sync Gradle and run the application on an emulator or real device.
This application demonstrates:
- Standard Android UI development using XML and ViewBinding.
- Clean architecture patterns with separation into layers.
- Live API integration and reactive UI updates.
- Handling loading and error states effectively.
- Utilization of coroutines and dependency injection.
- Replace XML with Jetpack Compose or migrate to Data Binding.
- Add local caching for offline usage.
- Implement search/filtering for indicators.
- Create UI and unit tests.
- Enhance with animations and accessible UI options.