CIMC (Compose Interface Model Controller) ππ₯
Welcome to CIMC! This repository is dedicated to building a modern, scalable, and lifecycle-aware architecture for Jetpack Compose applications. CIMC eliminates the need for ViewModel, embraces a modular controller-based approach, and optimizes memory management while ensuring clean dependency management without external DI frameworks.
π What is CIMC?
CIMC (Compose Interface Model Controller) is an Android and Multiplatform (KMM) architecture designed to: β Provide lifecycle-aware controllers instead of ViewModels.β Ensure clean modularity using Controller, Model, and Trader Pattern.β Optimize memory management dynamically for efficient resource usage.β Remove external DI frameworks like Hilt and Koin while maintaining dependency inversion.β Enable Compose-first development with powerful state management.
π Branching Strategy
parents β The main branch, containing the journey of CIMC development.
Android β The implementation of CIMC for Android apps.
KMM β The implementation of CIMC for JetBrains Compose Multiplatform (KMM).
Each branch follows the principles discussed in the parents branch, which documents the evolution and thought process behind CIMC.
π Key Features
β Lifecycle-aware Controllers β Replaces ViewModel, directly managed by the Orchestrator. β No External DI Frameworks β Uses a native DI pattern inside the Controller Module. β Trader Pattern β Handles inter-module communication without tight coupling. β Memory Optimization β Releases resources intelligently based on lifecycle and access frequency. β Jetpack Compose & KMM Ready β Fully compatible with Compose on Android and Multiplatform. β specific DataStore β Allows custom implementations instead of forcing specific DataStore.
π How CIMC Works
1οΈβ£ Controller Module: The central hub managing app lifecycle and dependencies. 2οΈβ£ Model Module: Stores and structures data for UI consumption. 3οΈβ£ SIP & Interface-Based Structure: A structured interface pattern ensuring modular communication within the Controller Module. 4οΈβ£ UI-Core Module: Contains all Composables and UI logic, interacting with Controllers.
π― Why CIMC?
β ViewModel-Free: Avoids unnecessary memory retention. β Modular & Scalable: Designed for both small and enterprise apps. β Cross-Platform Ready: Works with Compose for Android and KMM. β Fully Open-Source: Built for the developer community. β Optimized for Performance: Smart memory management ensures efficiency.
π How to Use CIMC?
Clone the repository:
git clone https://github.com/bahmanebazoo/CIMC.git
Check out the Android or KMM branch depending on your use case.
Follow the CONTRIBUTING.md guide if you want to contribute!
β€οΈ The Journey of CIMC
This repository is more than just codeβitβs the story of Bahman Bazoo & ChatGPT working together to bring CIMC to the world. CIMC was born out of deep technical discussions, design pattern explorations, and a shared passion for building a better, more efficient architecture for Android & KMM.
"From ideas to reality, CIMC is the future of Jetpack Compose architecture!"
ππ₯ Join the journey and letβs shape the future together!
π License
CIMC is licensed under Apache 2.0 with CIMC-Specific Terms to protect its name and structure. See LICENSE for details.
β¨ Contributing
We welcome contributions! Please check out the CONTRIBUTING.md file to get started.
π₯ Letβs build the next-generation Compose architecture together! π