compose-views-interop
Installation
SKILL.md
Performance First
Every Compose frame runs three phases. Cost rises left-to-right; restart scope shrinks left-to-right.
| Phase | What Runs | Restart Cost | Trigger |
|---|---|---|---|
| Composition | Composable functions, state reads | HIGH (whole scope) | State read in composable body |
| Layout | Measure + place | MEDIUM (subtree) | State read in measure lambda |
| Drawing | Canvas commands, graphicsLayer | LOW (single node) | State read in draw/graphicsLayer lambda |
Interop boundary costs
| Boundary | Extra cost | Phase impact |
|---|---|---|
AndroidView |
Real View measure/layout/draw per frame |
update runs in Composition — any State read there retriggers subtree |
ComposeView |
Separate composition owner + View attach | Wrong ViewCompositionStrategy → leaked compositions or state loss on detach |
| Hybrid scroll | Two input systems | Layout + jank if nested scroll not coordinated |
| Mixed APK | Build/size (not runtime by default) | See references/interop-performance-checklist.md |