A complete, practical foundation for Kotlin Multiplatform development - from coroutines to Compose, built for engineers.
This repository serves as a comprehensive bootstrapper and learning resource for Android developers and software engineers transitioning to Kotlin Multiplatform (KMP) and Compose Multiplatform (CMP) development.
Built from real-world teaching experience with interns, this open-source knowledge base provides a structured curriculum covering everything from fundamental concepts to advanced patterns in multiplatform development.
This curriculum is designed to be followed sequentially, building upon concepts from previous modules:
-
Understanding KMP and CMP
What they are, what problems they solve, and why choose KMP/CMP over alternatives like Flutter -
SOLID and CLEAN Principles
Software design principles, coupling & cohesion, and building maintainable architecture -
MVVM and Unidirectional Data Flow
Architectural patterns, state management, and unidirectional data flow
-
Kotlin Language Features
Data classes, sealed classes & interfaces, null safety, immutability, when expressions, scope functions, and extensions -
Coroutines Fundamentals
What coroutines are, suspension, cancellation, dispatchers, scopes, jobs, and coroutineContext -
Jobs and Supervisor Patterns
Job lifecycle, SupervisorJob, supervisorScope, and handling coroutine failures -
Flows and Reactive Programming
Observer pattern, hot vs cold flows, Flow, SharedFlow, StateFlow, and Channels
-
Compose Fundamentals
Declarative vs imperative UI, composition, recomposition, stability, lifecycles, state hoisting, side effects, and best practices -
expect/actual for KMP/CMP
Platform-specific implementations with common interfaces -
KMP/CMP Internals
How Kotlin Multiplatform and Compose Multiplatform work under the hood
-
Dependency Injection
Inversion of Control, DI frameworks (Dagger, Hilt, Koin), and best practices -
Contributing
How to contribute to this knowledge base and help the community
- Start with Module 1 and progress sequentially through the curriculum
- Each module contains:
- Learning objectives
- Detailed topic breakdowns
- Resources and references
- Links to the next module
- Take your time with each concept - mastery is more important than speed
- Practice with code examples (coming soon)
- Contribute back once you've learned!
- Learning: Follow the modules in order from 01 to 12
- Reference: Jump to specific modules when you need to review a topic
- Contributing: See Module 12: Contributing for guidelines
This resource is designed for:
- Android Developers looking to expand to multiplatform development
- Software Engineers interested in Kotlin and modern declarative UI
- Teams transitioning to KMP/CMP
- Interns and Junior Developers learning modern mobile development
- Anyone curious about Kotlin Multiplatform and Compose
multiplatform-mindset/
├── docs/
│ ├── modules/ # Learning modules (01-12)
│ ├── examples/ # Code examples (coming soon)
│ └── resources/ # Additional resources (coming soon)
├── README.md # This file
└── LICENSE # MIT License
Understanding KMP and CMP opens up opportunities to:
- Write code once, deploy everywhere (Android, iOS, Desktop, Web)
- Leverage Kotlin's powerful language features
- Build modern, reactive UIs with Compose
- Apply solid architectural patterns
- Create maintainable, testable applications
This is an open-source community resource! Contributions are welcome and encouraged:
- Report Issues: Found an error or outdated information? Open an issue
- Improve Content: Submit PRs to enhance explanations or fix typos
- Add Examples: Share code samples and practical demonstrations
- Suggest Topics: Have ideas for new modules or content? Let us know!
See Module 12: Contributing for detailed guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.
This knowledge base was created from real teaching experience with interns, now shared with the community to help others learn KMP and CMP. Special thanks to:
- The Kotlin and Compose communities
- All contributors to this repository
- Everyone learning and sharing knowledge
Ready to start? Head to Module 01: Understanding KMP and CMP to begin your journey! 🚀