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 28

advanced1 min read

The dynamic keyword and message dispatch

Dynamic forces Objective-C message dispatch via objc_msgSend, enabling KVO and swizzling, at the cost of skipping inlining and devirtualization.

easy2 min read

Flutter's Widget, Element, and RenderObject trees: roles and relationships

Tests your mental model of Flutter's rendering layers. Strong answer: Widget is immutable configuration; Element is the mutable lifecycle manager owning the RenderObject; RenderObject is the concrete layout and paint entity.

How would you use Perfetto and Trace.beginSection to find a non-obvious bottleneck?
advanced2 min read

How would you use Perfetto and Trace.beginSection to find a non-obvious bottleneck?

Tests correlation beyond CPU sampling. Covers coarse Trace.beginSection to limit 1-10us overhead, recording app ATrace with CPU/scheduling tracks, and correlating slices against scheduler latency. Red flag: omitting overhead or ignoring Perfetto SQL queries.

advanced1 min read

Limits of OTA Updates and Runtime Versions

OTA ships only JS and assets; native changes need a store build; runtime versions gate compatibility.

advanced2 min read

Verifying and avoiding copy-on-write overhead

Confirm extra copies via isKnownUniquelyReferenced or instruments and the retain trace; ensure unique references, mutate inout/in place, reserveCapacity, avoid aliasing.

intermediate2 min read

Walk me through Flutter's rendering pipeline and its phases.

Tests your understanding of the three-tree separation and how changes become pixels. Outline: setState marks objects dirty; Build updates elements, Layout computes sizes bottom-up via constraints, and Paint records commands top-down into layers.

Purpose of Android app signing and keystore contents
easy2 min read

Purpose of Android app signing and keystore contents

Signing proves authorship and integrity, enables same-key updates, and binds app identity; a keystore holds private keys and certificates.

intermediate1 min read

StyleSheet.create and Inline Style Tradeoffs

Styles are JS objects of subset-CSS properties; StyleSheet.create validates them and yields stable references, while inline objects allocate each render.

advanced2 min read

Debugging a closure capture leak in a third-party library

Use the Memory Graph Debugger to inspect retain paths, the Leaks and Allocations instruments, and malloc stack logging; trace the cycle before patching.

intermediate1 min read

Isolating and reducing excessive widget rebuilds

Push state down, use const subtrees, rebuild only listeners with ValueListenableBuilder, isolate repaints with RepaintBoundary.

What is an Android App Bundle and its advantages over APK?
easy2 min read

What is an Android App Bundle and its advantages over APK?

Tests knowledge of modern Play distribution. AAB is the publishing format with all code and resources; Play generates device-specific APKs for smaller downloads and supports dynamic features. Red flag: calling it a compressed APK or ignoring dynamic delivery.

intermediate1 min read

JSI, Fabric, and TurboModules in the New Architecture

JSI gives JS direct synchronous access to native via C++, Fabric is the new renderer, TurboModules lazy-load native modules.

intermediate1 min read

map versus compactMap versus flatMap

Map transforms each element one-to-one; compactMap transforms then drops nils; flatMap transforms to sequences then concatenates.

intermediate2 min read

Which DevTools view diagnoses janky Flutter animations?

Open Performance view; compare UI and Raster bars; flag bars over 16ms; blame UI bloat on builds and Raster jank on shaders or saveLayer.

Release build ClassNotFoundException not in debug: cause and file?
intermediate2 min read

Release build ClassNotFoundException not in debug: cause and file?

Tests R8 shrinking awareness: release-only obfuscation removes classes loaded by reflection. Check proguard-rules.pro first and add a -keep rule. Red flag: blaming multidex or disabling minification rather than writing a targeted keep rule.

intermediate1 min read

Responsive Layouts with Core React Native APIs

Lean on flexbox, percentage sizing, useWindowDimensions, SafeAreaView, and Platform; recompute on dimension change.

intermediate1 min read

Copy-on-write and implementing it for a custom struct

CoW shares a buffer until mutation, deep-copying only when the buffer is non-unique; Array, Dictionary, Set, String use it; implement with a class storage box and isKnownUniquelyReferenced.

intermediate2 min read

Explain 'constraints go down, sizes go up, parent sets position.'

Tests Flutter layout protocol and unbounded width errors. Strong answers trace how a child gets infinite width from a scrolling parent and fix it with a bounded wrapper. Red flag: blaming the child without tracing parent constraints.

Google Play App Signing: upload key versus app signing key
intermediate2 min read

Google Play App Signing: upload key versus app signing key

Tests Android signing infrastructure and key escrow knowledge. A strong answer states Google holds the app signing key while you retain an upload key, protecting critical signing material. Red flag: claiming both keys sign the final install artifact.

intermediate1 min read

Debouncing a Search TextInput with Hooks

Keep input in state, in an effect set a timer that fires the search after a delay, clear the timer on each change so only the final pause triggers the call.

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