# Mobile Developer Android

> Use when building or debugging Android apps — Kotlin, Java, Jetpack Compose, Android XML layouts, Gradle build, Play Store, Android SDK, Room database, or Android-specific APIs. Trigger phrases: "Android app", "Kotlin Android", "Jetpack Compose", "Android Studio", "Gradle build", "Play Store", "Android manifest", "Room database", "ViewModel", "Android lifecycle", "Material Design Android", "APK", "AAB".

- Skill: `barastrong/mobile-developer-android` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add barastrong/mobile-developer-android`
- Raw SKILL.md: https://api.skillmd.com/api/skills/barastrong/mobile-developer-android/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: barastrong (https://skillmd.com/u/barastrong)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/barastrong/mobile-developer-android

---


# Mobile Developer — Android

## Role Summary

An Android Developer builds, tests, and maintains native Android applications
using Kotlin (preferred) or Java, leveraging the Android SDK, Jetpack
libraries, and Material Design guidelines.

## Core Responsibilities

- Build native Android UIs with Jetpack Compose or XML layouts
- Implement app architecture (MVVM, MVI, Clean Architecture)
- Manage data persistence (Room, DataStore, SharedPreferences)
- Integrate REST/GraphQL APIs with Retrofit/Ktor
- Handle Android lifecycle, navigation, and deep linking
- Optimize performance (memory, battery, startup time)
- Write unit and instrumentation tests
- Manage Play Store releases (signing, versioning, review guidelines)

## Standard Workflow

1. **Requirements** — clarify screens, user flows, platform-specific behavior.
2. **Architecture** — define modules, navigation graph, dependency injection
   setup (Hilt/Koin).
3. **UI Layer** — Compose composables or XML layouts + ViewBinding.
4. **Domain Layer** — use cases, business logic, models.
5. **Data Layer** — repositories, API clients (Retrofit), local DB (Room),
   caching strategy.
6. **Testing** — unit tests (JUnit, Turbine), UI tests (Compose Testing,
   Espresso).
7. **Build & Release** — ProGuard/R8, signing config, version bumps,
   Play Console upload.

## Technology Stack

| Layer | Tools |
|-------|-------|
| Language | Kotlin (primary), Java (legacy) |
| UI | Jetpack Compose, Material 3, XML + ViewBinding |
| Architecture | ViewModel, LiveData/StateFlow, Hilt, Navigation Component |
| Networking | Retrofit, OkHttp, Ktor Client, Moshi/Kotlinx Serialization |
| Persistence | Room, DataStore, SQLDelight |
| Async | Kotlin Coroutines, Flow |
| Testing | JUnit, Mockk, Turbine, Compose Testing, Espresso |
| CI/CD | GitHub Actions, Fastlane, Gradle |
| Analytics | Firebase Analytics, Crashlytics |

## Best Practices

- Compose-first for new projects; XML only for legacy maintenance.
- Unidirectional data flow: UI → Event → ViewModel → State → UI.
- Never block the main thread — use coroutines with appropriate dispatchers.
- Handle configuration changes gracefully (ViewModel survives rotation).
- Support dark theme and dynamic colors (Material You).
- Target latest SDK, support minSdk based on user analytics.
- Use AndroidX libraries over deprecated support libraries.
- Accessibility: contentDescription, touch target size >= 48dp.

## Anti-Patterns to Avoid

- Business logic in Activities/Fragments/Composables.
- God Activities with thousands of lines.
- Ignoring process death — persist critical state.
- Hardcoding strings (use `strings.xml` for i18n readiness).
- Synchronous network calls on main thread.

## References

- `references/android-architecture-guide.md` — architecture decision records
- `references/play-store-checklist.md` — release checklist
- `references/compose-patterns.md` — Jetpack Compose best practices

## Expected Output Format

1. Working code following project architecture conventions
2. Tests passing (unit + UI)
3. Build successful (debug + release variant)
4. Screenshots or screen recordings for UI changes

