OverviewHistoryStatsSecurity
npx skills add ...
Documentation
SKILL.md
npx skills add new-silvermoon/awesome-android-agent-skills --skill compose-ui
Best practices for building UI with Jetpack Compose, focusing on state hoisting, detailed performance optimizations, and theming. Use this when writing or refactoring Composable functions.
npx skills add new-silvermoon/awesome-android-agent-skills --skill compose-ui
Follow these guidelines to create performant, reusable, and testable Composables.
Make Composables stateless whenever possible by moving state to the caller.
viewModel.uiState.collectAsStateWithLifecycle()) and passes it down.modifier: Modifier = Modifier as the first optional parameter.modifier to the root layout element of your Composable.padding().clickable() is different from clickable().padding(). Generally apply layout-affecting modifiers (like padding) after click listeners if you want the padding to be clickable.remember: Use remember { ... } to cache expensive calculations across recompositions.derivedStateOf: Use derivedStateOf { ... } when a state changes frequently (like scroll position) but the UI only needs to react to a threshold or summary (e.g., show "Jump to Top" button). This prevents unnecessary recompositions.
viewModel::onEvent) or remembered lambdas to prevent unstable types from triggering recomposition of children.MaterialTheme.colorScheme and MaterialTheme.typography instead of hardcoded colors or text styles.DesignSystem.kt or Components.kt) if they are shared across features.@Preview(showBackground = true) and include Light/Dark mode previews if applicable.