Skip to content
tezvyn:

📱Mobile Dev

Mobile app development across platforms

685 bites

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

Intermediate everything in Mobile Dev, page 21

intermediate2 min read

OkHttp Interceptors: Middleware for Your Network Stack

OkHttp Interceptors act as middleware for your network stack, letting you observe, modify, or short-circuit requests and responses. Use them to automatically add auth tokens or log traffic. The main footgun is order: application interceptors run once per call.

intermediate2 min read

Gradle Build Scripts: The Recipe for Your App

Gradle build scripts are your app's recipe, using a declarative DSL to define dependencies and build variants. They manage libraries and create versions like debug vs. release.

ContentProvider: Android's Shared Data API
intermediate1 min read

ContentProvider: Android's Shared Data API

A ContentProvider is a structured API gateway for your app's private data. It lets other apps query, insert, or delete data securely without direct access. The main footgun is improper permission handling, which can leak data or cause crashes.

Kotlin's Job: A Handle to a Background Task
intermediate2 min read

Kotlin's Job: A Handle to a Background Task

A Job is a handle to a coroutine, letting you manage its lifecycle. You get one from launch to control background tasks like network calls. The key footgun: a child's *failure* (Exception) cancels its parent, but a child's *cancellation* does not.

intermediate2 min read

Kotlin Collections: Think Transformations, Not Loops

Treat collection operations as a pipeline, not a for loop. Each function (map, filter) transforms data and passes it to the next stage, ideal for turning API data into UI models.

Appium: Test Your React Native App Like a Real User
intermediate2 min read

Appium: Test Your React Native App Like a Real User

Appium tests your app like a real user, tapping and scrolling on actual devices to catch bugs your unit tests miss. It's for verifying full user flows across iOS and Android. The footgun: relying only on unit tests gives a false sense of security.

intermediate2 min read

React Native's Bridgeless Mode

Bridgeless Mode replaces React Native's legacy message queue with direct calls between JavaScript and native code. This improves performance by removing the serialization bottleneck for UI rendering and native module calls.

useSyncExternalStore: For Synchronous External State
intermediate2 min read

useSyncExternalStore: For Synchronous External State

useSyncExternalStore lets React safely read from external data sources without UI tearing. It's for integrating non-React state, like from Redux or browser APIs, ensuring consistent reads during concurrent rendering.

intermediate2 min read

React Native's New Architecture Interop Layer

The Interop Layer is a compatibility bridge, letting legacy native modules run in React Native's New Architecture without a full rewrite. Library maintainers must ensure compatibility for users on RN 0.74+. The footgun: remove partial Codegen specs.

intermediate2 min read

React Native Codegen: Bridging JS and Native

React Native's Codegen auto-generates the boilerplate 'glue code' connecting your JavaScript specs to native implementations. It's essential for building Turbo Modules and Fabric Components.

intermediate2 min read

Android ViewManager: Bridging Native UI to React Native

A ViewManager is a factory for native Android UI. It tells React Native how to create and update a native view from JavaScript, bridging the gap between JS and native platform widgets. It's used for custom or third-party UI.

intermediate2 min read

React Native: Sending Events from Native to JavaScript

Think of it as a webhook from native code to your JavaScript UI. Native modules can push updates to JS without being called, enabling reactive UIs for long-running tasks or platform-level events.

intermediate2 min read

React Native: Creating an iOS Native Module

An iOS Native Module is a bridge, letting your JavaScript code call directly into native Objective-C or Swift. Use it to access platform APIs unavailable in React Native or for performance-critical tasks.

intermediate2 min read

React Native's Two Threads: JS and UI

React Native splits work between a JS thread for React logic and a UI thread for drawing pixels, keeping the app responsive. The JS thread runs your code and calculates layout, while the UI thread handles native view updates.

intermediate2 min read

React Native Secure Storage: Using Keychain and Keystore

Use the device's native vault (Keychain/Keystore) to store secrets, not plaintext in AsyncStorage. It's for securely persisting small data like API tokens or private keys. The footgun is treating it like a general database; it's slow and for secrets only.

intermediate2 min read

React Native Geolocation: The Web API on Mobile

Think of it as the web's navigator.geolocation API for your native app. Use it for map features or location-based content. The biggest footgun on iOS is forgetting location usage descriptions in Info.plist, which causes silent permission failures.

intermediate2 min read

React Native NetInfo: Know Your Connection State

The NetInfo API is your app's network sensor, telling you if you're online and whether you're on WiFi or cellular. Use it to show an 'offline' banner or defer large downloads. The main footgun: isConnected only confirms a local link, not server reachability.

Reanimated Worklets: Run JS on the UI Thread
intermediate2 min read

Reanimated Worklets: Run JS on the UI Thread

A Reanimated worklet is a JS function that runs directly on the UI thread, bypassing the bridge for 60fps animations. They're used in hooks like useAnimatedStyle to compute styles without dropping frames. The footgun: worklets capture their entire closure.

useAnimatedStyle: Link Shared Values to Component Styles
intermediate2 min read

useAnimatedStyle: Link Shared Values to Component Styles

The useAnimatedStyle hook connects a shared value to a component's style, running animations on the UI thread. It's a reactive StyleSheet for dynamic properties like opacity or transform. The footgun: never mutate shared values inside the hook.

useSharedValue: State for High-Performance Animations
intermediate2 min read

useSharedValue: State for High-Performance Animations

The useSharedValue hook creates state that lives on the UI thread, bypassing React's render cycle for animations. Use it with useAnimatedStyle to drive smooth, 60fps animations. The footgun: modifying a shared value won't re-render your component.

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