MicroMod is a project showing some important concepts in Jetpack Compose:
- How to define Custom Infinite Grid based on low-level
LazyLayoutAPI (seecore/designsystem/src/main/kotlin/layout/CustomLazyLayout.kt). Unlike standard high-level components, this project features a manual implementation ofLazyLayoutItemProviderand a customMeasurePolicyfor granular control over composition and placement. Verified via Layout Inspector, the project achieves zero recompositions during active scrolling in any direction. This is accomplished by offloading calculation logic from the composition phase and leveraging efficientSubcomposeLayoutStatemanagement. - How to properly implement micro-modular principles using Convention Plugins. This ensures centralized dependency management and standardized build configurations via the
:build-logicmodule. - How to use Nav3 with a single view model (see
app/src/main/java/com/example/micromod/Nav.kt).
This project was developed as part of the Advanced Compose course by Marcin Moskala, supported by JetBrains.
| Category | Technology |
|---|---|
| Language | Kotlin 2.0+ |
| UI Framework | Jetpack Compose (Advanced Layouts) |
| Build System | Gradle + Convention Plugins (Kotlin DSL) |
| Navigation | Navigation3 (Experimental) |
| Architecture | Micro-modular Architecture |
| Optimization | Custom LazyLayout & SubcomposeLayout |
:build-logic— Custom Kotlin DSL Gradle plugins for unified module configuration.:feature— Independent functional modules (Artist Grid, Detail View).:core— Design system components, networking layer, and shared utilities.:app— Aggregator module and navigation graph configuration.