Skip to content
tezvyn:

📱Mobile Dev

Mobile app development across platforms

652 bites

Test yourself: Top 30 Mobile Dev interview questionsMultiple choice, with the correct answer and why it is correct on every question. Free, no sign-in.

Interview questions in Mobile Dev, page 18

advanced1 min read

Designing a native map UI component

Wrap each platform's native view, expose props mapped to native setters and events as bubbling callbacks, unify behind one JS API.

intermediate2 min read

URLSession data vs download vs upload tasks

Data tasks buffer responses in memory for small API calls; download tasks stream to a file and support background transfers for large files; upload tasks send bodies from data or files and report…

intermediate2 min read

How do you manage product list and favorite state without full rebuilds?

This tests granular rebuild control in Flutter lists. A strong answer isolates item state with ValueNotifier or ChangeNotifier per item plus const constructors with keys. Red flag: calling setState on the parent list rebuilds every ListTile on each tap.

Explain the purpose of a UseCase and how it fits into MVVM
intermediate2 min read

Explain the purpose of a UseCase and how it fits into MVVM

UseCases encapsulate single business rules between ViewModel and Repository, keeping ViewModels lean and Repositories focused on data.

Explain the purpose of a UseCase or Interactor layer
intermediate2 min read

Explain the purpose of a UseCase or Interactor layer

Tests your grasp of separation of concerns. A great answer defines a UseCase as a single, reusable business operation that sits between the ViewModel and Repository. It keeps other layers clean and focused.

advanced1 min read

Responsive layout across form factors

Drive layout from dimensions and breakpoints via useWindowDimensions, react to orientation changes, avoid hardcoded OS checks.

intermediate2 min read

Run two API calls concurrently with async let

Use async let to start two independent fetches that run concurrently, then await both, so total time approaches the slower call rather than the sum.

intermediate2 min read

Explain lifting state up in Flutter and how Provider simplifies it

Tests declarative state ownership and prop-drilling cost. A strong answer names the lowest common ancestor, contrasts callback threading with Provider lookup, and avoids root-level state.

How would you architect two source Flows from ViewModel to data layer?
advanced2 min read

How would you architect two source Flows from ViewModel to data layer?

This tests merging parallel async streams into one reactive state. A strong answer uses combine on two cold repository Flows, exposes one UI state Flow from the ViewModel, and maps failures to error states. Red flag: using two coroutines mutating shared state.

Combine two network sources using Coroutines and Flow
advanced2 min read

Combine two network sources using Coroutines and Flow

Tests your grasp of async data combination and state management. A good answer uses Flow.combine in a ViewModel, fed by a Repository, emitting a sealed class for UI state (Loading, Success, Error). A red flag is trying to combine state in the UI layer itself.

easy1 min read

useNativeDriver in the Animated API

Native driver runs animations on the UI thread so they stay smooth even if JS is busy, but only supports non-layout props like transform and opacity.

intermediate1 min read

What is @MainActor and why does it matter?

@MainActor is a global actor guaranteeing code runs on the main thread; annotate UI-updating types or methods so post-network state changes are main-thread safe.

advanced1 min read

Immutable bloc state versus mutable ChangeNotifier

Immutable gives predictable diffs, easy debugging and replayability at the cost of boilerplate; mutable is terse but error-prone.

How do you navigate between feature modules without direct dependencies?
advanced2 min read

How do you navigate between feature modules without direct dependencies?

This tests architectural decoupling in multi-module Android apps. A great answer describes a shared navigation contract or deep-link router that lets features stay independent. Recommending direct Gradle dependencies between features is a major red flag.

Navigate between feature modules without direct dependencies?
advanced2 min read

Navigate between feature modules without direct dependencies?

Tests dependency inversion in modular apps. Answer by defining navigation interfaces in a shared module, implementing them in the :app module, and using DI to connect them. A red flag is suggesting direct module dependencies or using reflection for navigation.

easy1 min read

Build a mount fade-in with Animated API

Create an Animated.Value(0) in a ref, drive it with Animated.timing inside useEffect, bind it to opacity on Animated.View.

intermediate1 min read

Add a default header to every URLSession request

Set httpAdditionalHeaders on a URLSessionConfiguration, build the session from it, mention per-request overrides win.

easy2 min read

Make a GET request with http and parse JSON in Dart

Practical Dart async networking with package:http and dart:convert. Import http, await get(Uri.parse(url)), verify statusCode is 200, then jsonDecode(response.body) as List<Map<String, dynamic>>. Skipping status checks or decoding without a cast.

How would you architect state-driven UI with ViewModel and Compose?
advanced2 min read

How would you architect state-driven UI with ViewModel and Compose?

Tests unidirectional data flow and state hoisting. Model screen state as an immutable data class, expose StateFlow from ViewModel, and collect it in Compose so events flow up and state down. Red flag: exposing mutable state or putting logic in Composables.

intermediate1 min read

Animated.sequence versus Animated.parallel

Sequence runs animations one after another in order, parallel starts them at the same time.

We are hiring for this. Every open role lists the topics its interview covers, so you can prepare for the real thing rather than guessing.

See open roles