Role preparation

Android Developer interview questions and answers.

Kotlin, Android lifecycle, and responsive mobile interfaces.

Questions

Technical questions to practise out loud

  1. 01

    What is structured concurrency in Kotlin coroutines?

    Structured concurrency binds child coroutines to a parent scope, so completion, cancellation, and failure have a defined owner; use lifecycle-aware scopes and avoid unowned GlobalScope work.

    Read the full breakdown
  2. 02

    How do ViewModels work with the Android lifecycle?

    A ViewModel retains screen state across configuration changes and is cleared when its owner finishes; it should expose UI state and launch work in viewModelScope without holding Activity or View references.

    Read the full breakdown
  3. 03

    What triggers recomposition in Jetpack Compose?

    Compose recomposes functions that read state when that state changes; stable inputs, correctly scoped state, keys, and derivedStateOf reduce unnecessary work without suppressing required UI updates.

    Read the full breakdown
  4. 04

    How do you find Android memory leaks?

    Find Android leaks by reproducing lifecycle transitions, watching retained objects with LeakCanary or a heap dump, then tracing the reference chain—commonly static state, callbacks, adapters, or coroutines.

    Read the full breakdown
  5. 05

    How do you design an offline-first Android app?

    An offline-first app reads from a local source of truth, synchronises with the network in the background, records pending writes, and defines conflict resolution, retry, freshness, and user-visible sync state.

    Read the full breakdown
  6. 06

    How do you handle networking on Android?

    Android networking needs typed API contracts, timeouts, cancellation, retry only for transient idempotent work, mapped errors, authentication refresh, secure transport, and repository-level caching or persistence.

    Read the full breakdown
  7. 07

    How do you structure Android navigation?

    Model navigation as explicit destinations and arguments, keep navigation decisions outside reusable UI, restore state after process death, and handle deep links and back-stack behaviour as tested product flows.

    Read the full breakdown
  8. 08

    What is your Android testing strategy?

    Test Android logic on the JVM where possible, use Compose or instrumentation tests for platform interaction, isolate repositories, control dispatchers and clocks, and keep a small end-to-end set for critical journeys.

    Read the full breakdown
  9. 09

    How do you improve Android app performance?

    Improve Android performance by measuring startup, frame timing, memory, battery and network with Macrobenchmark, profiler and traces; fix main-thread blocking, excessive recomposition, allocations, or oversized work.

    Read the full breakdown
  10. 10

    How do you store sensitive data on Android?

    Store sensitive Android data minimally, use platform-backed encrypted storage or Keystore keys, never hard-code secrets, protect exported components, validate deep links, and assume a compromised client cannot keep server secrets.

    Read the full breakdown