Skip to content
tezvyn:

📱Mobile Dev

Mobile app development across platforms

662 bites

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

Concepts in Mobile Dev, page 29

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.

Refining Objective-C APIs for Swift with NS_SWIFT_NAME
advanced1 min read

Refining Objective-C APIs for Swift with NS_SWIFT_NAME

NS_SWIFT_NAME gives Objective-C code a Swifty alias without changing the original API. Use it to modernize legacy frameworks by removing prefixes for Swift consumption.

advanced2 min read

Deferred Components: On-Demand Features in Flutter

Think of deferred components as downloadable content for your app. They reduce initial install size by letting you download features on demand. This is ideal for large, rarely-used functions on Android and web, but requires handling loading states and network…

Android Navigation Actions: Defined Paths, Not Just Destinations
intermediate2 min read

Android Navigation Actions: Defined Paths, Not Just Destinations

A Navigation Action is a configured pathway between screens, not just a destination. It bundles the target screen with transition animations and arguments. Use them in your XML nav graph to keep UI code clean.

intermediate2 min read

React Native Gesture Handler: Native-Driven Touch

React Native Gesture Handler moves touch recognition to the native thread so gestures stay smooth when JavaScript is busy. Use it for swipeable cards and bottom sheets. The footgun is using it without Reanimated, gaining complexity without the frame-rate win.

intermediate2 min read

Swift Property Wrappers: Reusable Logic for Properties

A Swift Property Wrapper is a template for a property's get/set logic, letting you reuse behaviors like data validation without boilerplate. It powers SwiftUI's @State and is great for managing UserDefaults.

easy2 min read

Flutter's Architectural Layers: UI and Data

Think of a Flutter app in two parts: the UI layer for what the user sees, and a data layer for fetching and managing information. This separation is crucial for apps with APIs or complex state.

intermediate2 min read

Composing Gestures: Race, Simultaneous, Exclusive

Gesture composition lets multiple detectors negotiate one touch stream. Use it when a view must scroll and pinch together. The footgun is assuming gestures cooperate by default; without explicit composition, one steals the stream and breaks the rest.

intermediate2 min read

The Package.swift Manifest File

Think of Package.swift as a recipe for your code, telling the Swift Package Manager (SPM) what to build, what it needs, and where it can run. You use it to define libraries, list dependencies, and set minimum OS versions.

easy2 min read

Profiling Flutter Apps with Dart DevTools

Dart DevTools is your app's diagnostic tool, letting you see exactly why frames drop or memory spikes. Use it to find the root cause of "jank" in lists or slow animations.

intermediate2 min read

Retrofit Converters: Speaking Your API's Language

A Retrofit Converter is a translator that turns raw network data into your app's data classes (e.g., JSON to Kotlin objects). You add a converter factory, like for Moshi or Gson, when building your Retrofit instance. The footgun: converter order matters.

intermediate2 min read

useAnimatedGestureHandler: UI-Thread Gesture Worklets

useAnimatedGestureHandler bridges RNGH events to Reanimated shared values on the UI thread via worklets, keeping pan gestures at 60fps without JS drops. The footgun is reading JS state inside worklet, which crashes because worklets run in an isolated runtime.

intermediate2 min read

Swift Basic Types: Value Semantics by Default

Swift's basic types are value type structs, so assignment copies, not shares, a reference. You feel this when passing Strings into functions or choosing Int over Double. The footgun is treating them as free to copy; large values cost memory and speed.

Manual Dependency Injection: No Frameworks, Just Code
intermediate2 min read

Manual Dependency Injection: No Frameworks, Just Code

Manual dependency injection means you are the 'framework,' creating and passing dependencies yourself via constructors. It's great for simple apps where a full DI library is overkill, but the footgun is creating dependencies inside the class that needs them.

intermediate2 min read

React Native State Persistence

React Native state dies when the OS kills your app. Persistence writes critical data to disk so users resume where they left off. The footgun is testing with a swipe-close instead of a real process kill, or restoring stale data without schema checks.

intermediate2 min read

Swift Collections: Array, Set, Dictionary

Swift's three collections are different access patterns, not just different APIs. Arrays keep order, Sets enforce uniqueness, and Dictionaries map keys to values. Picking an Array for uniqueness checks turns membership from O(1) into O(n) scans.

intermediate2 min read

Dagger's Assisted Injection: Creating Objects with Runtime Data

Assisted Injection lets Dagger provide some dependencies while you supply the rest at runtime. It's for objects that need both graph-provided services and user-supplied data, like a specific ID. The footgun: you can't inject the object, only its factory.

intermediate2 min read

Handling Network Errors in React Native

Network errors are normal state, not bugs to silence. In React Native, every fetch should expect flakiness and surface a retry path. The footgun is treating a timeout as permanent failure and wiping optimistic local state.

intermediate2 min read

Swift Closures: Functions with a Memory

A closure is a function carrying luggage: it captures surrounding variables and remembers them later. Use them in SwiftUI actions, async completions, and array transforms. Beware a strong reference cycle from capturing self without a capture list.

intermediate2 min read

RepaintBoundary: Isolate and Optimize Flutter Painting

RepaintBoundary acts like painter's tape for your UI, isolating a widget's paint job from its parent to prevent unnecessary repaints. Use it on complex, static widgets inside an animating view. The footgun is overuse: each boundary adds memory overhead.

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