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)
- What happens to viewModelScope work on rotation?
- Coroutines vs threads
- What does suspend mean?
- launch vs async
- Structured concurrency
- Choosing a dispatcher
- withContext and main-safety
- Cooperative cancellation
- Job vs SupervisorJob
- Loading several things in parallel
- Collecting safely from the UI
- Cold vs hot flows
- StateFlow vs SharedFlow
- stateIn and WhileSubscribed(5_000)
- One-off events from a ViewModel
- Search-as-you-type with Flow
- LiveData vs StateFlow
- Compose vs the View system
- What triggers recomposition?
- remember vs rememberSaveable
- State hoisting
- Stability and skipping
- LaunchedEffect and its keys
- Keys in LazyColumn
- collectAsStateWithLifecycle
- Navigation in Compose
- The Activity lifecycle
- Lifecycle order: A opens B
- Configuration changes
- Process death
- SavedStateHandle
- Fragment and view lifecycles
- How a ViewModel survives
- Explicit and implicit intents
- Services and foreground service types
- Runtime permissions
- Null safety and !!
- val, var and const val
- Data classes
- Sealed classes and exhaustive when
- == vs ===
- let, run, with, apply, also
- lateinit vs by lazy
- object, companion object and singletons
- RecyclerView, ListAdapter and DiffUtil
- UI, domain and data layers
- Unidirectional data flow and UiState
- MVVM vs MVI
- Repositories and a single source of truth
- Dependency injection
- Hilt basics
- Room basics
- DataStore vs SharedPreferences
- WorkManager basics
- Notifications and channels
- Retrofit with coroutines
- ANRs: causes and fixes
- Jank and dropped frames
- Memory leaks
- Cold start time
- Local vs instrumented tests
- Fakes, mocks and stubs
- Testing coroutines with runTest
- Testing a ViewModel
- Storing tokens and secrets on device
- R8, shrinking and keep rules
- Edge-to-edge and window insets
- Designing an offline-first app
- Designing a social feed