Mobile — Android Native Development
Kotlin, Jetpack Compose, Android Studio, and the full Google-blessed Android stack.
The Android native stack in 2026 is Kotlin 2.x with Jetpack Compose as the default UI layer. The View / XML system is in legacy-maintained mode — still supported, almost no new code. Android Studio is the IDE; Gradle with the Kotlin DSL is the build system. For cross-platform paths see Flutter, Kotlin Multiplatform, Compose Multiplatform, Mobile (Native) RN/Expo, and Skip (SwiftUI → Kotlin).
Cost reality: Google Play Console is $25 one-time (vs Apple's recurring $99/yr). Android Studio, Kotlin, and Gradle are all free.
Languages
- ★ Kotlin 2.x — default. K2 compiler, stable since Kotlin 2.0. Multiplatform-ready.
- Java — still maintained; existing codebases keep it; almost no new modules in 2026.
- C / C++ via NDK — for performance hot paths and ports.
UI frameworks
- ★ Jetpack Compose — the default UI layer in 2026. Material 3, adaptive layouts, Compose for Wear OS, Compose for TV. Open source, Apache 2.0.
- View system / XML layouts — legacy-maintained. New projects should not start here.
- Compose Material 3 — Google's design system on top of Compose; "expressive" theme variants ship with later Material releases.
IDEs
- ★ Android Studio — Google's official IDE (IntelliJ-based). Free.
- IntelliJ IDEA (Ultimate / Community) — same engine; less Android-specific tooling.
- Fleet (JetBrains) — newer multi-language IDE; KMP-friendly.
- VS Code + Kotlin extensions — works for editing; no first-class Android emulator integration.
Architecture / DI / state
- ★ AndroidX Lifecycle + ViewModel — the default state container.
- ★ Hilt — Dagger-based DI; the Google-recommended choice. Apache 2.0.
- Dagger — bare; still used in Hilt's underbelly.
- Koin — pure-Kotlin DI; popular in KMP / multiplatform. Apache 2.0.
- Kotlin Coroutines + Flow — async / reactive primitives; default.
Persistence / databases
- ★ Room (Jetpack) — SQLite ORM; the default. KSP-powered, multiplatform support added in Room 2.7.
- ★ DataStore (Jetpack) — replaces SharedPreferences for typed preferences and small persisted state.
- MMKV (Tencent) — fast key-value store; cross-platform; faster than DataStore for hot paths.
- Realm — same MongoDB Realm story as iOS.
- ObjectBox — fast NoSQL; free + paid sync.
- SQLDelight — type-safe SQL across KMP; popular outside pure-Android.
- See Mobile — Databases & Storage.
Networking
- ★ Retrofit + OkHttp — the long-standing default. Square-maintained, mature.
- ★ Ktor Client — Kotlin-first, multiplatform-ready; the better choice for KMP projects.
- Apollo Kotlin — GraphQL client.
Distribution
- ★ Google Play Console — primary distribution. $25 one-time registration. Internal / Closed / Open testing tracks, Play App Signing.
- F-Droid — FOSS app catalog; reproducible-build emphasis. Free.
- Amazon Appstore — Fire devices and a fallback Android catalog.
- Aurora Store — alternative Play Store front-end (anonymous installs).
- Galaxy Store (Samsung) — Samsung-specific distribution.
- Huawei AppGallery — Huawei devices (no Google Play in Huawei since 2019).
- Direct APK / APK Mirror — sideload distribution; Android allows it natively.
- See Mobile — Internal Distribution & MDM.
Testing
- JUnit 4 / 5 — unit tests.
- Espresso — instrumented UI tests; the long-standing default for View-based UIs.
- Compose UI tests (
createComposeRule) — Compose's built-in UI testing. - Robolectric — JVM-side Android tests; fast feedback.
- MockK — Kotlin-first mocking. Apache 2.0.
- Mockito — Java-era; works in Kotlin.
- ★ Paparazzi (Square) — render Compose to PNG on the JVM; snapshot testing without a device. Free.
- Roborazzi — Robolectric-based Compose snapshot testing. Free.
- See Mobile — Testing Frameworks and Mobile — Snapshot Testing.
Build tools
- ★ Gradle + Kotlin DSL — the default. AGP (Android Gradle Plugin) ships with Android Studio.
- KSP (Kotlin Symbol Processing) — replaces KAPT for almost all annotation processors; faster.
- Bazel — Google internal; rare in the wild.
- Maven — legacy.
Privacy / compliance
- Data Safety section — required Play Store metadata since 2022.
- Play Integrity API — replaces SafetyNet for app/device attestation.
- Scoped Storage — required since Android 11; no broad external storage.
- Predictive Back — required gesture support since Android 14.
Wear / TV / Auto
Pick this if…
- New Android-only app: Kotlin + Compose + Hilt + Room + Retrofit/Ktor.
- Want to share code with iOS: Kotlin Multiplatform + Compose Multiplatform.
- Existing View-based app: stay on Views; mix Compose via
ComposeViewincrementally. - FOSS distribution focus: F-Droid + reproducible builds.
- Need cross-store reach: Play + Galaxy Store + Amazon Appstore + Huawei AppGallery.