Skip to content

Latest commit

Β 

History

History
115 lines (83 loc) Β· 3.89 KB

File metadata and controls

115 lines (83 loc) Β· 3.89 KB

πŸš€ Android Assignment (Forked & Extended)

πŸ“¦ 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


πŸ“Έ Screenshots

Splash Home Screen Followed Players Screen Sort bottom sheet

✨ Material 3 · Dark & Dynamic Theme Supported


🧠 About My Implementation

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.

🧩 Key Enhancements

  • 🧱 Clean Architecture β€” clear separation of data, domain, and presentation
  • πŸ’‰ 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

πŸ—οΈ Architecture Overview

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

βš™οΈ Tech Stack

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.

🌿 Branches

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