Intermediate interview questions in Mobile Dev, page 15
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.
Build flavors and schemes for RN environments
Android productFlavors with distinct applicationId and resources, iOS schemes plus configurations and targets, environment config injection.
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
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.
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.
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.
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
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.
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.
The legacy React Native Bridge architecture
JS, native, and shadow threads communicate via an async, batched, JSON-serialized Bridge.
setUp() and tearDown() in XCTestCase
SetUp builds fresh state before each test, tearDown cleans up after, ensuring independence.
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.
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.
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.
Making a Legacy UIViewController Testable
Extract logic into a testable view model, inject dependencies, keep the controller a thin humble object.
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?
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.
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.
Resolving Conflicting Transitive Versions in SPM
SPM allows only one version per package, so diagnose the graph, then update, pin, or fork to find an overlap.

Architect periodic and on-demand sync with WorkManager
Tests combining periodic and push WorkManager requests safely. Outline: one Worker class, PeriodicWorkRequest hourly and OneTimeWorkRequest on push, with ExistingWorkPolicy.KEEP plus constraints. Red flag: two Workers, no deduplication, or ForegroundService.
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