
android-compose-creator
by shoheikawano
SKILL.md
name: android-compose-creator description: | Generate Android/Kotlin Multiplatform code using Jetpack Compose and Compose Multiplatform (CMP). Use when: (1) Creating new Compose UI components, (2) Building screens with Compose, (3) Implementing state management in Compose, (4) Writing Compose Multiplatform shared UI, (5) Reviewing or refactoring Compose code, (6) Any Android/KMP UI development task. Triggers: "compose", "android ui", "kotlin multiplatform", "CMP", "jetpack compose", "composable", "@Composable", "Material3", "screen", "component". context: fork agent: general-purpose user-invocable: true allowed-tools:
- Read
- Write
- Edit
- Glob
- Grep
- Bash
- Skill
Android Compose Creator
Orchestrator for Compose Multiplatform code generation. Can delegate to specialized sub-skills.
Coding Standards
MANDATORY: This skill follows kotlin-compose-standards. All generated code MUST comply with these standards:
- Trailing comma EXCEPT for Modifier arguments
- Parameter order: required → Modifier → optional
- Modifier passed last when calling composables
- Each Modifier method on its own line
- New line at end of file
Sub-Skills
| Skill | When to Delegate |
|---|---|
/compose-state-generator | ViewModel, UiState, StateFlow patterns |
/compose-test-generator | UI tests, screenshot tests |
Workflow
- Analyze request - UI only? Needs ViewModel? Needs tests?
- Check existing code - Match project patterns
- Generate/delegate:
- Simple UI component → generate inline
- Screen with state → invoke
/compose-state-generatorthen generate UI - Tests requested → invoke
/compose-test-generator
- Verify - Run build if requested
Quick Reference
Composable Function Naming
// DO: PascalCase for UI-emitting composables
@Composable
fun ProfileCard(user: User, modifier: Modifier = Modifier) { }
// DO: camelCase for value-returning composables
@Composable
fun rememberProfileState(): ProfileState { }
Standard Parameter Order
@Composable
fun Component(
// 1. Required parameters
title: String,
onClick: () -> Unit,
// 2. Modifier parameter
modifier: Modifier = Modifier,
// 3. Optional parameters with defaults
enabled: Boolean = true,
) { }
State Hoisting Pattern
// Stateless (preferred for reusability)
@Composable
fun Counter(
count: Int,
onIncrement: () -> Unit,
modifier: Modifier = Modifier,
) { }
// Stateful wrapper
@Composable
fun Counter(modifier: Modifier = Modifier) {
var count by remember { mutableStateOf(0) }
Counter(
count = count,
onIncrement = { count++ },
modifier = modifier // Modifier last when calling, no trailing comma
)
}
References
Load these based on the task:
| File | When to Read |
|---|---|
| composables.md | Writing any composable function |
| state-management.md | State, remember, side effects |
| architecture.md | Screen architecture, ViewModel integration |
| performance.md | Optimizing recomposition, lazy lists |
| multiplatform.md | CMP expect/actual, platform-specific code |
| testing.md | Writing UI tests for composables |
Core Principles
- Unidirectional Data Flow - State flows down, events flow up
- Single Source of Truth - One owner for each piece of state
- Composition over Inheritance - Small, focused composables
- Modifier as Last Parameter - Always accept and apply Modifier
- Stateless by Default - Hoist state to callers when possible
スコア
総合スコア
リポジトリの品質指標に基づく評価
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
レビュー
レビュー機能は近日公開予定です