Loading repository data…
Loading repository data…
r0shanbhagat / repository
This is an open-source, mobile, cross-platform application built with Kotlin Multiplatform Mobile. It's a simple RSS reader, and you can download it from the App Store and Google Play. It's been designed to demonstrate how KMM can be used in real production projects.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
A modular Kotlin Multiplatform (KMP) project demonstrating a clean, scalable, and production-ready architecture. This template is designed for Android, iOS, Desktop, and Web using shared business logic and UI layers where applicable.
This repository is intended for developers, open-source contributors, and internal engineering teams who want a well-structured reference for building large KMP applications.
This project showcases a Clean Architecture implementation in Kotlin Multiplatform, emphasizing:
The goal is to provide a flexible baseline for real-world multiplatform applications.
Below is the official architecture diagram used in this repository:
Contains platform-specific entry points:
Each platform module interacts with feature modules like:
Feature:LoginFeature:RegistrationFeature:HomeModularized into:
Produces:
.aar.xcframeworkkmp-clean-architecture/
│
├── composeApp/ # Platform UI hosts
│ ├── androidApp/
│ ├── iosApp/
│ ├── webApp/
│ └── desktopApp/
│
├── features/ # Feature-level modules
│ ├── login/
│ ├── registration/
│ └── home/
│
├── data/ # Data layer
│ ├── core-utils/
│ ├── core-net/
│ ├── core-analytic/
│ └── data/
│
├── shared/ # Multiplatform shared modules
│
└── build/outputs/ # .aar and .xcframework artifacts
git clone https://github.com/r0shanbhagat/kmp-clean-architecture.git
cd kmp-clean-architecture
Open in Android Studio (Hedgehog or later) and run the androidApp module.
From the project root:
./gradlew :shared:packForXcode
Then open the generated Xcode workspace.
./gradlew :composeApp:desktopApp:run
./gradlew :composeApp:webApp:jsBrowserDevelopmentRun
Add new features by creating a new module under features/ and wiring it into the UI containers found in composeApp/.
Each feature follows:
| Platform | Output |
|---|---|
| Android | .aar |
| iOS | .xcframework |
| Desktop | Native app |
| Web | JS bundle |
Gradle sync issues
Use the latest Android Studio & Kotlin plugin
Run:
./gradlew clean build
iOS framework not generating
Ensure Xcode command line tools are installed
Try:
./gradlew :shared:packForXcode --info
Contributions are welcome! Feel free to open issues or submit Pull Requests to improve the architecture, features, or documentation.
This project is licensed under the Apache 2.0 License.