A modern Android application built with Kotlin and Jetpack Compose, following a modular MVI architecture for scalability, maintainability, and clean separation of concerns. This repository contains the technical assessment I completed during the hiring process at PlanRadar. The solution led to a successful offer and was later followed by my employment there. The repository is preserved in its original form, with documentation added afterward to explain the architecture and design decisions.
--- ## Why this project?This project demonstrates how I build production-ready Android applications using a modular architecture, MVI, offline-first data flow, and modern Android development practices.
It was originally developed as the technical assessment for PlanRadar and resulted in a successful job offer.
- Kotlin – Primary language
- Jetpack Compose – Declarative and reactive UI
- Material 3 – Modern design system
- Hilt – Dependency Injection
- Retrofit + OkHttp + Gson – Networking and JSON parsing
- Kotlin Coroutines & Flow – Asynchronous and reactive data handling
- Room (Database Module) – Local caching with offline-first support
- Coil – Image loading
- JUnit4, MockK, Turbine – Testing stack
- Based on MVI (Model–View–Intent) for reactive state management.
- Uses a multi-module architecture, where each feature and core functionality is separated into independent modules for scalability and faster builds.
- Includes a dedicated
databasemodule that provides local data caching through Room, supporting an offline-first experience. - Follows clean architecture principles, separating UI, domain, and data layers clearly.
- Reactive UI built with Compose + Flow
- Scalable feature-based modular structure
- Offline-first approach using Room and DataStore
- Type-safe networking with Retrofit + Gson
- Dependency management with Hilt
- Clean, maintainable, and well-documented codebase
- Security Check for emulator or root detect
- Built-in CI/CD pipeline for continuous integration and testing
- Ui testing
- Paging 3
- Baseline Profiles
- KSP migration
- Compose Multiplatform (experimental)







