Android application for jewelry store Moonlight.
Sign in![]() |
Sign up![]() |
Profile![]() |
Favorites![]() |
Cart![]() |
|---|---|---|---|---|
Catalog categories![]() |
Catalog![]() |
Filters![]() |
Sort![]() |
Product details![]() |
| Registration | Catalog & Create order & Favorites | Filters & sort | Favorites |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- Multi-Module Architecture
- Clean Architecture
- MVI and MVVM Patterns for presentation layer.
- MVI-Orbit MVI framework for Android.
- Compose Toolkit for building native UI (in a declarative way - 100% Kotlin).
- Paging 3 Pagination library for Android.
- Shimmer Loading animation library supported by Jetpack Compose.
- Coil Image downloading and caching library supported by Jetpack Compose.
- Jetpack Navigation Navigation library for Jetpack Compose.
- Kotlin-Coroutines Library support for Kotlin coroutines.
- Flow Stream processing API, built on top of Coroutines.
- Dagger Hilt Dependency injection library for Android.
- Retrofit Type-safe REST client for Android to consume RESTful web services.
- OkHttp3 HTTP client for Android.
- kotlinx.serialization - Kotlin multiplatform / multi-format reflectionless serialization.
- Room Database for Android.
Note
Nearly all modules are organized into api and impl folders. The api folder contains what the module exposes externally, while the impl folder holds the implementation details.
└── module
├── api/ ← Public interfaces
├── impl/ ← Implementation classes (with internal modifier)
| Module name | Type | Description |
|---|---|---|
| app | Android Application | Application setup. Navigation, Hilt setup. |
| Module name | Type | Description |
|---|---|---|
| core | - | This is the core component of the application, integrating key business rules, infrastructure, and logic. It ensures independence from external layers (UI, frameworks) and serves as the foundation for scalability, testability, and code reusability. |
| core-common | Android Library | A module which contains shared logic. |
| core-ui | Android Library | A module which contains Moonlight design system. |
| core-data | Android Library | A module integrating data sources, database and services to provide repositories. |
| core-network | Android Library | A module which provides interaction with the Internet (Services). |
| core-datasource | Android Library | A module which contains datasource for saving local data. |
| core-database | Android Library | A module which contains Database for caching. |
| core-domain | Android Library | A module which contains business rules. |
| core-model | Kotlin Library | A module which contains domain models. |
| Module name | Type | Description |
|---|---|---|
| feature-auth-signin | Android Library | Sign in screen. |
| feature-auth-signup-registration | Android Library | Registration screen. |
| feature-auth-signup-confirmcode | Android Library | Confirm code screen. |
| feature-auth-signup-complete | Android Library | Registration compete screen. |
| Module name | Type | Description |
|---|---|---|
| feature-catalog-categories | Android Library | Main screen. Screen for chose category. |
| feature-catalog | Android Library | Catalog screen. |
| feature-catalog-filter | Android Library | Filters for catalog. |
| feature-catalog-sort | Android Library | Sort for catalog. |
| feature-catalog-product | Android Library | Product details screen. |
| Module name | Type | Description |
|---|---|---|
| feature-cart | Android Library | Cart screen. |
| Module name | Type | Description |
|---|---|---|
| feature-profile | Android Library | Profile screen. |
| feature-profile-changepassword | Android Library | Change password screen. |
| feature-profile-edit | Android Library | Edit profile screen. |
| Module name | Type | Description |
|---|---|---|
| feature-favorites | Android Library | Favorites screen. |
| Module name | Type | Description |
|---|---|---|
| feature-order | Android Library | Order screen. |













