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 16

Swift Task
intermediate2 min read

Swift Task

Task is the unit of concurrent work in Swift's structured concurrency model. Creating a Task starts an async job right away, and Swift tracks its priority, cancellation, and lifetime automatically instead of leaving you to manage threads by hand.

advanced2 min read

PageRouteBuilder: Custom Routes Without the Boilerplate

PageRouteBuilder creates a custom page route on the fly, skipping the boilerplate of a full subclass. Just provide a pageBuilder for the screen's content and a transitionsBuilder for a unique animation.

Preferences DataStore: The Safe SharedPreferences
easy2 min read

Preferences DataStore: The Safe SharedPreferences

Preferences DataStore is Android's modern way to save simple key-value data. It uses Kotlin's Flow to read data asynchronously, preventing UI freezes. Use it for user settings, but remember you can't read values synchronously like with SharedPreferences.

intermediate2 min read

Managing Splash Screens in React Native

A splash screen bridges the gap between tapping your app icon and your React Native bundle finishing its load, preventing a jarring white screen. Use it to improve perceived performance during launch.

URLSessionConfiguration: The Blueprint for Network Requests
intermediate2 min read

URLSessionConfiguration: The Blueprint for Network Requests

Think of URLSessionConfiguration as a blueprint for your network sessions. It defines rules like timeouts and caching policies upfront. Use it to create customized sessions, but remember you can't change the configuration after the session is created.

advanced2 min read

PopScope: Guarding Your Flutter Routes

PopScope acts as a gatekeeper for back navigation in Flutter, letting you intercept and block attempts to leave a screen. Use it to show a confirmation dialog for unsaved changes. Its behavior differs on iOS; the swipe-back gesture won't trigger its callback.

Room Type Converters: Teach Your Database New Tricks
intermediate2 min read

Room Type Converters: Teach Your Database New Tricks

Room Type Converters are translators for your database, teaching it to store types it doesn't natively understand, like Date. They let you persist simple objects by converting them to primitives like Long. The footgun is faking object relations with them.

intermediate2 min read

Linking Native Dependencies in React Native

Installing a native library is a two-step process: fetch the JS code, then link the native iOS/Android parts. This is required for packages like react-native-webview that need native APIs. The footgun is forgetting to run pod install for iOS and rebuild.

HTTPURLResponse: Reading the Server's Reply
intermediate2 min read

HTTPURLResponse: Reading the Server's Reply

Think of HTTPURLResponse as the envelope for a server's reply. It holds metadata like the status code (200 OK, 404 Not Found) and headers. You'll handle this after every URLSession call to check if your request succeeded.

Room Database Migrations: Evolving Your Schema Safely
intermediate2 min read

Room Database Migrations: Evolving Your Schema Safely

A Room migration is a renovation plan for your database. When you change your schema, you provide SQL instructions to upgrade existing user data without loss, preventing crashes on app updates. The footgun is forgetting to increment the database version.

advanced2 min read

Why Xcode Schemes Aren't in React Native 'Get Started' Docs

React Native's 'Get Started' docs favor frameworks like Expo, which handle build environments for you. Xcode Schemes and Configurations are powerful tools you use when managing the native iOS project yourself, a layer deeper than the basics.

MainActor: Keep Your UI on the Main Thread
intermediate2 min read

MainActor: Keep Your UI on the Main Thread

The MainActor is a global actor ensuring code runs on the main thread, the only safe place for UI updates. Use it when modifying UIKit or SwiftUI views. The footgun is over-applying it to a whole class, which can serialize background work and freeze the.

advanced2 min read

Android Product Flavors for App Environments

Android Product Flavors let you build distinct app variants (like dev, staging, prod) from one codebase, each with its own configuration. Use this for separate builds or white-labeling.

AsyncSequence: A Sequence That Awaits Its Next Element
intermediate2 min read

AsyncSequence: A Sequence That Awaits Its Next Element

AsyncSequence is like a regular Swift Sequence, but you await its next element. It lets you process values that arrive over time, like network data, without blocking. The footgun: iteration suspends, so run it in a Task for true concurrency.

easy2 min read

Provider: Pass Data Down Your Widget Tree

Think of Provider as a delivery service for your app's data, passing it down the widget tree without sending it through every widget's constructor. It's a lightweight way to manage state. The footgun: never use .value to create a new object.

App-Specific Storage: Your App's Private Locker
intermediate2 min read

App-Specific Storage: Your App's Private Locker

Think of app-specific storage as a private locker for your app's data, automatically cleaned up on uninstall. Use it for cache, settings, or internal data. The footgun: assuming this data is permanent—it's deleted when the user uninstalls.

Adaptive React Native UIs for Tablets and Foldables
advanced2 min read

Adaptive React Native UIs for Tablets and Foldables

Adaptive UI is context-aware layout, not just stretching pixels. It matters when a phone app hits a tablet or a foldable unfolds. Most devs stop at flexbox and wonder why the tablet experience still feels like a blown-up phone.

URLSessionDownloadTask: Download Files Without Hogging Memory
intermediate2 min read

URLSessionDownloadTask: Download Files Without Hogging Memory

URLSessionDownloadTask downloads files directly to disk, not memory, making it ideal for large assets. Use it for videos or updates, especially in the background. The footgun: you must move the file from its temporary location or the OS will delete it.

easy2 min read

ValueNotifier: Notifies on Replacement, Not Mutation

ValueNotifier is a simple state holder that tells widgets to rebuild when its single value is replaced. It's great for immutable data like a boolean toggle or counter.

Scoped Storage: Your App's Private File Cabinet
intermediate2 min read

Scoped Storage: Your App's Private File Cabinet

Scoped Storage gives your app a private file cabinet on external storage, not a key to the whole building. It's the default on modern Android for saving data or accessing media. The footgun: don't use direct file paths to shared files; you must use new.

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