π¦ Original Repository: Android Assignment provided by Miare firm
This repository is a fork of the original Miare firm assignment provided for a technical task.π§ My version includes:
- β¨ Refactoring
- π§ Architectural improvements
- π¨ Modern Jetpack Composeβbased UI implementation
- π§ͺ Unit & UI tests for reliability and scalability
π Explore my full implementation in the dedicated branch β
morz_sheikhi
β¨ Material 3 Β· Dark & Dynamic Theme Supported
The original codebase served as a starting point.
In my version, I redesigned the architecture, migrated the UI to Jetpack Compose, and added clean, testable, and reactive layers to make the project production-ready.
- π§± Clean Architecture β clear separation of
data,domain, andpresentation - π Hilt DI across modules
- π§ Navigation-Compose for screen transitions
- βοΈ State management with ViewModel + StateFlow
- π¨ Jetpack Compose (Material 3) UI
- π Repository pattern with Retrofit + Room
- π§ͺ Testing-ready use cases & abstractions
This project follows a Multi-Module Clean Architecture pattern to achieve scalability, modularity, and testability.
app/
βββ Main application module (entry point, DI setup)
βββ Depends on feature modules
core/
βββ data/ β Repositories & data sources
βββ database/ β Room entities & DAO
βββ designsystem/ β Shared UI components & themes
βββ domain/ β UseCases & domain models
βββ model/ β Core shared models
βββ network/ β Retrofit, API interfaces
βββ ui/ β Shared Compose utilities
feature/
βββ followedplayers/ β Feature module for managing followed players
βββ home/ β Feature module for home screen & list display
β Benefits:
- Independent feature modules for better build times and separation of concerns
- Core modules shared across all features (network, data, design system, etc.)
- Highly scalable for adding new features
- Easier testing and maintenance with clear boundaries
- Supports both unit and UI testing
| Category | Technologies |
|---|---|
| Architecture | Multi-Module Β· Clean Architecture Β· MVI |
| UI | Jetpack Compose Β· Material 3 Β· Design System Module - Paging 3 |
| DI | Hilt |
| Async / Reactive | Kotlin Coroutines Β· Flow Β· StateFlow |
| Network | Retrofit Β· Jakson |
| Database | Room |
| Testing | JUnit Β· MockK Β· Espresso Β· Compose UI Tests |
| Build / Tools | Gradle (KTS) Β· Version Catalogs Β· Kotlin DSL |
| Modularity | Core / Feature separation for scalability |
π§ The modular structure allows isolated development of each feature while keeping shared logic centralized in
core/, ensuring both code reusability and build performance optimization.
| Branch | Description |
|---|---|
main |
Original company assignment (unmodified) |
morz_sheikhi |
My improved implementation with Compose + Clean Architecture |
To check out my branch:
git checkout morz_sheikhi



