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
- Requirements — clarify screens, user flows, platform-specific behavior.
- Architecture — define modules, navigation graph, dependency injection setup (Hilt/Koin).
- UI Layer — Compose composables or XML layouts + ViewBinding.
- Domain Layer — use cases, business logic, models.
- Data Layer — repositories, API clients (Retrofit), local DB (Room), caching strategy.
- Testing — unit tests (JUnit, Turbine), UI tests (Compose Testing, Espresso).
- 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.xmlfor i18n readiness). - Synchronous network calls on main thread.
References
references/android-architecture-guide.md— architecture decision recordsreferences/play-store-checklist.md— release checklistreferences/compose-patterns.md— Jetpack Compose best practices
Expected Output Format
- Working code following project architecture conventions
- Tests passing (unit + UI)
- Build successful (debug + release variant)
- Screenshots or screen recordings for UI changes