Skip to content
tezvyn:

📱Mobile Dev

Mobile app development across platforms

164 bites

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

Advanced interview questions in Mobile Dev, page 7

advanced1 min read

React to location authorization changed in Settings

Implement locationManagerDidChangeAuthorization, which fires on launch and whenever status changes, read authorizationStatus, and start updates when authorized.

advanced2 min read

Recognize objects in ARKit with a Core ML model

Pull the frame's capturedImage, run Vision/Core ML off the main thread, raycast the 2D detection point into the scene, add an ARAnchor.

advanced2 min read

Implement staggered animations using a single AnimationController and Interval

This tests multiplexing one ticker into sequential animations. Use one AnimationController, map each Tween to an Interval on distinct 0-to-1 sub-ranges, and rebuild with AnimatedBuilder. Red flag: multiple controllers or manual forward chaining.

advanced1 min read

Diagnosing and fixing CustomPainter jank

Avoid work in paint, gate repaints with shouldRepaint, isolate with RepaintBoundary, cache static layers.

Replace a production NetworkService with a fake in Hilt instrumented tests
advanced2 min read

Replace a production NetworkService with a fake in Hilt instrumented tests

Tests whether you know Hilt test overrides beyond basic DI. A strong answer covers @BindValue for field-level fakes and @TestInstallIn or @UninstallModules for module swaps.

advanced1 min read

How do Fabric, TurboModules, and JSI fix bridge limits?

JSI lets JS hold C++ host objects and call native synchronously without JSON serialization; Fabric renders concurrently and TurboModules lazy-load.

advanced1 min read

Building a custom implicitly animated widget

Extend ImplicitlyAnimatedWidget, use AnimatedWidgetBaseState, define tweens in forEachTween, read values in build.

Describe Hilt's component hierarchy and scope injection rules
advanced2 min read

Describe Hilt's component hierarchy and scope injection rules

Tests whether you understand Hilt's generated component tree and scoping rules. A strong answer lists the hierarchy, explains parent-outlives-child semantics, and states that ActivityScoped-into-Singleton injection fails at compile time.

advanced1 min read

How do you move a 500ms blocking task off the JS thread?

Offload to a native module or C++ TurboModule, a worklet/worker thread, or chunk the work and yield; never block JS.

advanced1 min read

Diagnosing and stabilizing flaky XCUITests

Identify timing races, animations, network variance, and shared state; fix with expectations, controlled launch state, and isolation.

advanced1 min read

How do you debug a memory leak with Hermes heap snapshots?

Take a baseline snapshot, exercise the suspect flow repeatedly, snapshot again, and compare retained sizes and object counts that grow monotonically.

advanced1 min read

Driving app state via launch arguments in XCUITest

Pass launchArguments and launchEnvironment, read them at startup to seed auth and flags, bypassing slow UI steps.

advanced1 min read

Contrast the legacy bridge with JSI

Bridge is async, serialized JSON, and batched; JSI enables direct synchronous C++ calls with no serialization, cutting latency and enabling lazy native modules.

Android 12 foreground service restrictions and WorkManager expedited jobs
advanced2 min read

Android 12 foreground service restrictions and WorkManager expedited jobs

Tests Android 12 background-start limits. A great answer covers: the API 31 ban on background FGS starts, BOOT_COMPLETED exceptions, and WorkManager setExpedited with out-of-quota fallback. Red flag: starting an FGS in a BroadcastReceiver ignoring quota.

advanced1 min read

Direct events vs bubbling events in native components

Direct events fire only on the originating component; bubbling events propagate up the component tree like the DOM, allowing parent capture.

advanced2 min read

Developing a local Swift Package alongside an app

Add the package as a local dependency by dragging its folder into the project or workspace, so Xcode references the source on disk and rebuilds edits immediately.

advanced2 min read

Present full-screen native SDK UI from Flutter and return a result

This tests platform channel architecture for full-screen native UI delegation. Use MethodChannel to launch the native controller, retain the async result callback, serialize the dismissal payload back to Dart, and avoid PlatformView for modal flows.

advanced2 min read

What is Pigeon and how does it improve platform channels?

This tests type-safe platform channels versus manual MethodChannel boilerplate. Answer: Pigeon is a dev-time code generator that creates typed host stubs from a Dart contract, removing string keys and encoding. Red flag: calling it a runtime library.

advanced1 min read

Why use a C++ TurboModule, and what are the risks?

C++ JSI bindings give synchronous, serialization-free calls and shared cross-platform code; challenges are manual memory ownership across the JS-C++ boundary, GC interaction, and thread safety.

How would you implement and register a custom IdlingResource?
advanced2 min read

How would you implement and register a custom IdlingResource?

Implement the three IdlingResource methods with an atomic counter; register via IdlingRegistry in setup and unregister in teardown.

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