Skip to content
tezvyn:

📱Mobile Dev

Mobile app development across platforms

345 bites

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

Intermediate concepts in Mobile Dev, page 15

intermediate2 min read

TCA: Unidirectional State for SwiftUI

TCA is a strict pipeline for SwiftUI: state and actions enter a pure reducer, emitting new state and effects. Use it when complex flows need reproducible tests without launching the app.

Higher-Order Functions: Passing Code as Data
intermediate2 min read

Higher-Order Functions: Passing Code as Data

Higher-order functions treat code as data, accepting other functions as arguments. Lambdas are a concise syntax for creating these function arguments inline, powering collection operations like map and filter or UI listeners.

intermediate2 min read

Building Android Native Modules in React Native

Native modules let JavaScript invoke Android APIs in Kotlin or Java. You build them when no library covers a device capability or you must reuse native code. The classic mistake is blocking the UI thread inside a @ReactMethod or mismatching getName() in JS.

intermediate2 min read

SwiftUI Sheets: State-Driven Modal Overlays

A SwiftUI sheet is a temporary, state-bound overlay that slides over your current view. Use it for focused tasks like composing a message or picking a date. State and environment values do not automatically propagate into its isolated view hierarchy.

Android XML Layouts: The Classic UI Blueprint
intermediate2 min read

Android XML Layouts: The Classic UI Blueprint

XML layouts are the classic blueprints for Android screens, defining the structure of UI elements (Views) in a static file. You'll find them in legacy projects or when using View-based components like ConstraintLayout and RecyclerView.

intermediate2 min read

Bridging Data Types in React Native

The React Native bridge only moves serializable data, so values crossing between JS and native must be primitives, arrays, or plain objects. You face this building native modules. The footgun is passing functions or class instances; the bridge strips them.

intermediate2 min read

Map Data to Views Using navigationDestination

navigationDestination turns NavigationStack into a router: register a view per data type, then push raw values. It frees view models from creating views. Using it outside NavigationStack or mixing it with old NavigationLink destinations silently breaks…

intermediate2 min read

Flutter's Draggable and DragTarget: The Drag-and-Drop Pair

Build drag-and-drop UI in Flutter with the Draggable and DragTarget widget pair. A Draggable carries data, and a DragTarget acts as a mailbox that accepts it. Use them for reordering lists. The footgun: drops fail silently if the data types don't match.

Android Custom Views: Beyond the Standard Library
intermediate2 min read

Android Custom Views: Beyond the Standard Library

A custom view gives you full control over a UI component's drawing and interaction. Use it for unique elements like charts or radial menus that standard widgets can't handle. The footgun is building one when composing existing views would be simpler.

intermediate2 min read

Returning Promises from React Native Modules

A native module promise is an IOU across the bridge: JS asks native for a future result. Use them when native work like file encryption must run off the JS thread. If native code never resolves the promise, the JS await hangs forever and leaks.

intermediate2 min read

Unwind Segues: Jump Back in the Stack

An unwind segue jumps from a deep screen to an earlier view controller without manual popping. Use it after multi-step flows to return to a root screen. If multiple screens share the same action, UIKit picks the nearest one and silently routes users wrong.

intermediate2 min read

NavigatorObserver: Listening to Route Changes in Flutter

A NavigatorObserver acts like a flight traffic controller for your app's screens, letting you react to navigation events like push and pop. It's used for analytics or updating UI based on the current route.

intermediate2 min read

iOS ViewManager: Native UI Bridge Factory

An iOS ViewManager is a bridge factory, not a view: it creates native UIViews and maps JS props to them. Use it for iOS surfaces like MapKit or camera previews JS cannot render. Never store view state in the manager; one manager vends many views.

intermediate2 min read

withCheckedThrowingContinuation: Bridge Callbacks to Async/Await

withCheckedThrowingContinuation bridges legacy completion-handler APIs into async/await. Wrap one-shot callback-based work so callers use try await instead of nested blocks. The footgun is resuming twice or never, which checked runtimes catch in debug builds.

intermediate2 min read

Deep Linking: URLs for Your App's Screens

Deep linking gives your app screens their own URLs, letting users jump directly to specific content from outside the app. Use it for email marketing, sharing content, or push notifications.

intermediate2 min read

Android Worker: For Deferrable Background Tasks

An Android Worker handles background tasks that must complete, even if the app closes or the device restarts. Use it for reliable, deferrable work like syncing data or uploading logs. The footgun is using it for immediate tasks; the OS can delay its execution.

intermediate2 min read

Mapping JavaScript Props to Native Views

React Native bridges JS props to native views via annotated setters. Use it when wrapping platform views like maps or video players. The footgun is a missing annotation: the prop crosses the bridge but native never receives it, causing silent failures and…

intermediate2 min read

withAnimation: The Implicit Animation Transaction

withAnimation wraps state changes in a transaction, telling SwiftUI to tween affected layout automatically. Call it from button actions or view model methods to animate many views from one state flip.

intermediate2 min read

Flutter's onGenerateRoute for Dynamic Routes

onGenerateRoute is Flutter's central switchboard for creating routes on the fly, especially when they need data. Use it to pass arguments to new screens or handle routes not statically defined in the routes map.

intermediate2 min read

Google Play Release Tracks: A Funnel for Quality

Google Play's release tracks are a funnel for quality, moving from a small trusted group to the public. Use them to get feedback, from internal QA (Internal track) to a wider audience (Closed/Open tracks), before a full production launch.

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