UI Design Skill
Quick Start
ConstraintLayout
<androidx.constraintlayout.widget.ConstraintLayout>
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Jetpack Compose
Column(modifier = Modifier.fillMaxSize().padding(16.dp)) {
Text("Hello Compose", fontSize = 20.sp)
Button(onClick = { }) { Text("Click Me") }
}
Material Design 3
Scaffold(
topBar = { TopAppBar(title = { Text("MyApp") }) }
) { padding ->
// Content
}
Key Concepts
Constraint Types
- Start/End, Top/Bottom
- Chains (spread, packed)
- Guidelines
- Barriers
- Bias
Compose State
var count by remember { mutableStateOf(0) }
Button(onClick = { count++ }) { Text("Count: $count") }
Material Components
- Buttons (filled, outlined, text)
- Cards, FABs, Dialogs
- Navigation patterns
- Theme system
Best Practices
✅ Use ConstraintLayout for efficiency ✅ Implement Material Design ✅ Test on multiple screen sizes ✅ Optimize rendering performance ✅ Support accessibility