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 31

intermediate1 min read

Push vs Modal Presentation in UIKit

Push adds to a nav stack with back, modal presents a self-contained interrupting flow.

Chain WorkManager tasks and pass a file URI between workers.
intermediate2 min read

Chain WorkManager tasks and pass a file URI between workers.

This tests WorkManager chaining and data passing. A strong answer chains Download, Unzip, and Process with WorkContinuation, passes URI via outputData, and reads it with inputData. A red flag is suggesting global state, SharedPreferences, or thread blocking.

intermediate2 min read

Compare sqflite and Drift: trade-offs and when to choose Drift

This tests Flutter persistence trade-offs. Contrast sqflite's raw maps and raw SQL with Drift's typed code, streams, and migrations; choose Drift for complex schemas or web targets. Red flag: calling Drift bloat or claiming raw sqflite is always faster.

intermediate1 min read

Build flavors and schemes for RN environments

Android productFlavors with distinct applicationId and resources, iOS schemes plus configurations and targets, environment config injection.

intermediate1 min read

Building a Card Flip Animation in SwiftUI

Drive a flipped state, rotate both faces with rotation3DEffect, hide the back face.

Roles of minifyEnabled and shrinkResources and common pitfalls
intermediate2 min read

Roles of minifyEnabled and shrinkResources and common pitfalls

Tests R8 code shrinking vs resource stripping and runtime risks. Outline: minifyEnabled shrinks code; shrinkResources removes unused assets and requires minifyEnabled; dynamic access like getIdentifier() crashes; keep resources with tools:keep or keep.xml.

intermediate2 min read

Set up an integration test for a multi-screen login flow

This tests your grasp of integration_test's device runtime versus headless widget tests. A strong answer covers the integration_test directory, ensureInitialized, driving a login flow end-to-end on device.

intermediate2 min read

Web DOM elements vs React Native core components

View maps to UIView/ViewGroup, Text to native text, no HTML or CSS, all text must be inside Text.

intermediate1 min read

Generating Video Thumbnails with AVAssetImageGenerator

Load AVAsset, configure AVAssetImageGenerator, request the time off the main thread, hop back to update UI.

Create a custom View from scratch that draws a shape
intermediate2 min read

Create a custom View from scratch that draws a shape

This tests Android View measurement and drawing contracts. A strong answer covers: onMeasure resolves dimensions against parent MeasureSpec; onDraw renders with Canvas and Paint; constructors parse attributes.

intermediate2 min read

How do you test Flutter platform channels and mock native responses?

Tests MethodChannel mocking in widget tests. Strong answers intercept calls via TestDefaultBinaryMessengerBinding, encode replies with StandardMessageCodec, pump the widget, and assert UI state.

intermediate2 min read

The legacy React Native Bridge architecture

JS, native, and shadow threads communicate via an async, batched, JSON-serialized Bridge.

intermediate1 min read

setUp() and tearDown() in XCTestCase

SetUp builds fresh state before each test, tearDown cleans up after, ensuring independence.

intermediate2 min read

How do you implement OAuth2 token refresh with Retrofit Authenticator?

Implement authenticate() with a blocking refresh, new Request with new token, Mutex for parallel 401s.

intermediate2 min read

How do you handle CPU-bound tasks without freezing the Flutter UI?

Tests whether you know async/await yields for I/O but cannot parallelize CPU work. A strong answer defines Isolates as isolated heaps with message-passing, contrasts them with threads, and shows how compute() wraps Isolate.spawn.

intermediate2 min read

Adding native code to Expo without ejecting

Use prebuild with config plugins to inject native changes, build a custom development client with EAS, keep native folders generated not hand-edited.

intermediate1 min read

Making a Legacy UIViewController Testable

Extract logic into a testable view model, inject dependencies, keep the controller a thin humble object.

intermediate1 min read

Auth-protected routes via GoRouter redirect

A top-level redirect reads auth state, sends unauthenticated users to login, sends logged-in users away from login, and uses refreshListenable to re-evaluate on auth change.

How would you implement a constrained photo upload with WorkManager?
intermediate2 min read

How would you implement a constrained photo upload with WorkManager?

Tests knowledge of WorkManager constraints and retry policies for deferrable background uploads. A strong answer names OneTimeWorkRequest with Constraints for charging and unmetered network, plus BackoffPolicy for retry.

intermediate2 min read

Composing tap and pan gestures together

Declare both gestures and relate them with simultaneous or exclusive composition, using Gesture.Race or simultaneousHandlers so a small move stays a tap.

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