Study plan

Interview in 2 days? Take the crash plan: the most-asked questions and your weak spots, up to 30 a day. Or take 7 or 30 days.

Pick your plan

With JavaScript on, this builds a day-by-day plan from how often each question comes up in interviews and from your weak spots. Without it, start with the most-asked questions below.

Most-asked questions (69)

  1. What happens to viewModelScope work on rotation?
  2. Coroutines vs threads
  3. What does suspend mean?
  4. launch vs async
  5. Structured concurrency
  6. Choosing a dispatcher
  7. withContext and main-safety
  8. Cooperative cancellation
  9. Job vs SupervisorJob
  10. Loading several things in parallel
  11. Collecting safely from the UI
  12. Cold vs hot flows
  13. StateFlow vs SharedFlow
  14. stateIn and WhileSubscribed(5_000)
  15. One-off events from a ViewModel
  16. Search-as-you-type with Flow
  17. LiveData vs StateFlow
  18. Compose vs the View system
  19. What triggers recomposition?
  20. remember vs rememberSaveable
  21. State hoisting
  22. Stability and skipping
  23. LaunchedEffect and its keys
  24. Keys in LazyColumn
  25. collectAsStateWithLifecycle
  26. Navigation in Compose
  27. The Activity lifecycle
  28. Lifecycle order: A opens B
  29. Configuration changes
  30. Process death
  31. SavedStateHandle
  32. Fragment and view lifecycles
  33. How a ViewModel survives
  34. Explicit and implicit intents
  35. Services and foreground service types
  36. Runtime permissions
  37. Null safety and !!
  38. val, var and const val
  39. Data classes
  40. Sealed classes and exhaustive when
  41. == vs ===
  42. let, run, with, apply, also
  43. lateinit vs by lazy
  44. object, companion object and singletons
  45. RecyclerView, ListAdapter and DiffUtil
  46. UI, domain and data layers
  47. Unidirectional data flow and UiState
  48. MVVM vs MVI
  49. Repositories and a single source of truth
  50. Dependency injection
  51. Hilt basics
  52. Room basics
  53. DataStore vs SharedPreferences
  54. WorkManager basics
  55. Notifications and channels
  56. Retrofit with coroutines
  57. ANRs: causes and fixes
  58. Jank and dropped frames
  59. Memory leaks
  60. Cold start time
  61. Local vs instrumented tests
  62. Fakes, mocks and stubs
  63. Testing coroutines with runTest
  64. Testing a ViewModel
  65. Storing tokens and secrets on device
  66. R8, shrinking and keep rules
  67. Edge-to-edge and window insets
  68. Designing an offline-first app
  69. Designing a social feed