mobile-android-design
wshobson/agents
Master Material Design 3 and Jetpack Compose for modern Android app interfaces.
What is mobile-android-design?
Build native Android apps using Material Design 3 (Material You) and Jetpack Compose. Use this skill when designing Android interfaces, implementing Compose UI layouts, or following Google's Material Design guidelines for phones, tablets, and foldables.
- Design Android app interfaces following Material Design 3 standards
- Build Jetpack Compose UI components and layouts
- Implement Android navigation patterns with Navigation Compose
- Create adaptive layouts for phones, tablets, and foldable devices
- Apply Material 3 theming with dynamic colors and dark mode support
- Build accessible Android interfaces with proper touch targets and content descriptions
How to install mobile-android-design
npx skills add https://github.com/wshobson/agents --skill mobile-android-design- Android Studio or compatible IDE
- Kotlin knowledge
- Jetpack Compose library setup
- Android SDK 21 or higher
How to use mobile-android-design
- 1.Review Material Design 3 guidelines and color system for your app
- 2.Set up MaterialTheme in your app's root composable
- 3.Create reusable components using @Composable functions with proper state hoisting
- 4.Use MaterialTheme.colorScheme for all colors to support dark mode automatically
- 5.Implement adaptive layouts with WindowSizeClass for different screen sizes
- 6.Add contentDescription to all interactive elements for accessibility
- 7.Use LazyColumn for long lists and remember for state management
- 8.Test with @Preview annotations using different device configurations
Use cases
- Creating a Material 3-compliant card list component with proper theming
- Designing responsive layouts that adapt to different device sizes and orientations
- Building an accessible navigation system using Navigation Compose
- Implementing dynamic color theming for Android 12+ devices
- Developing a tablet-optimized layout using WindowSizeClass
- Android app developers
- UI/UX designers building for Android
- Mobile engineers implementing Jetpack Compose
- Teams following Material Design guidelines
mobile-android-design FAQ
Set up Material 3 theming and enable dynamic color in your MaterialTheme configuration. The system will automatically apply user-selected colors from their wallpaper on compatible devices.
Use 48dp as the minimum touch target size for all interactive elements to meet accessibility standards.
Use rememberSaveable instead of remember for state that should persist across configuration changes like screen rotation.
Use LazyColumn for long lists to improve performance by only composing visible items. Use Column only for small, fixed-size lists.
Use WindowSizeClass to detect screen size and create adaptive layouts that adjust content arrangement based on available space.
Full instructions (SKILL.md)
Source of truth, from wshobson/agents.
name: mobile-android-design description: Master Material Design 3 and Jetpack Compose patterns for building native Android apps. Use when designing Android interfaces, implementing Compose UI, or following Google's Material Design guidelines.
Android Mobile Design
Master Material Design 3 (Material You) and Jetpack Compose to build modern, adaptive Android applications that integrate seamlessly with the Android ecosystem.
When to Use This Skill
- Designing Android app interfaces following Material Design 3
- Building Jetpack Compose UI and layouts
- Implementing Android navigation patterns (Navigation Compose)
- Creating adaptive layouts for phones, tablets, and foldables
- Using Material 3 theming with dynamic colors
- Building accessible Android interfaces
- Implementing Android-specific gestures and interactions
- Designing for different screen configurations
Detailed section: Core Concepts
Originally a 9201-byte section in this SKILL.md. Moved to references/details.md to fit Codex's 8 KB skill body cap.
Quick Start Component
@Composable
fun ItemListCard(
item: Item,
onItemClick: () -> Unit,
modifier: Modifier = Modifier
) {
Card(
onClick = onItemClick,
modifier = modifier.fillMaxWidth(),
shape = RoundedCornerShape(12.dp)
) {
Row(
modifier = Modifier
.padding(16.dp)
.fillMaxWidth(),
verticalAlignment = Alignment.CenterVertically
) {
Box(
modifier = Modifier
.size(48.dp)
.clip(CircleShape)
.background(MaterialTheme.colorScheme.primaryContainer),
contentAlignment = Alignment.Center
) {
Icon(
imageVector = Icons.Default.Star,
contentDescription = null,
tint = MaterialTheme.colorScheme.onPrimaryContainer
)
}
Spacer(modifier = Modifier.width(16.dp))
Column(modifier = Modifier.weight(1f)) {
Text(
text = item.title,
style = MaterialTheme.typography.titleMedium
)
Text(
text = item.subtitle,
style = MaterialTheme.typography.bodyMedium,
color = MaterialTheme.colorScheme.onSurfaceVariant
)
}
Icon(
imageVector = Icons.Default.ChevronRight,
contentDescription = null,
tint = MaterialTheme.colorScheme.onSurfaceVariant
)
}
}
}
Best Practices
- Use Material Theme: Access colors via
MaterialTheme.colorSchemefor automatic dark mode support - Support Dynamic Color: Enable dynamic color on Android 12+ for personalization
- Adaptive Layouts: Use
WindowSizeClassfor responsive designs - Content Descriptions: Add
contentDescriptionto all interactive elements - Touch Targets: Minimum 48dp touch targets for accessibility
- State Hoisting: Hoist state to make components reusable and testable
- Remember Properly: Use
rememberandrememberSaveableappropriately - Preview Annotations: Add
@Previewwith different configurations
Common Issues
- Recomposition Issues: Avoid passing unstable lambdas; use
remember - State Loss: Use
rememberSaveablefor configuration changes - Performance: Use
LazyColumninstead ofColumnfor long lists - Theme Leaks: Ensure
MaterialThemewraps all composables - Navigation Crashes: Handle back press and deep links properly
- Memory Leaks: Cancel coroutines in
DisposableEffect
Related skills
More from wshobson/agents and the wider catalog.
tailwind-design-system
Build production-ready design systems with Tailwind CSS v4, design tokens, and component libraries.
typescript-advanced-types
Master TypeScript's advanced type system: generics, conditional types, mapped types, and utility types for type-safe applications.
nodejs-backend-patterns
Build production-ready Node.js backends with Express/Fastify, middleware patterns, auth, and database integration.
python-performance-optimization
Profile and optimize Python code using cProfile, memory profilers, and performance best practices.
brand-landingpage
Brand-first landing page designer with guided interviews and Stitch-powered iteration.
python-testing-patterns
Implement comprehensive testing strategies with pytest, fixtures, mocking, and test-driven development.