Skip to content
tezvyn:
Menu

📱Mobile Dev

Mobile app development across platforms

688 bites

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

Intermediate everything in Mobile Dev, page 26

HealthKit: The Secure Vault for User Health Data
intermediate2 min read

HealthKit: The Secure Vault for User Health Data

HealthKit is a secure, centralized database for user health data, not a sensor. Your app requests permission to read or write data like steps or workouts, which the OS manages. The footgun is assuming access; users grant permissions per data type.

StoreKit
intermediate1 min read

StoreKit

StoreKit is Apple's framework for in-app purchases and subscriptions. It manages product lookup, presenting the payment sheet, processing transactions, and restoring purchases, so apps never touch raw payment data directly.

Vision Framework: Computer Vision on Apple Devices
intermediate2 min read

Vision Framework: Computer Vision on Apple Devices

The Vision framework is your on-device toolkit for understanding images and video. Use it for face detection, text recognition, or barcode scanning without needing ML expertise. Footgun: don't run requests on every frame; it drains the battery.

Core ML: On-Device Machine Learning for Apple Apps
intermediate2 min read

Core ML: On-Device Machine Learning for Apple Apps

Core ML runs pre-trained machine learning models directly on Apple devices, enabling fast, private, and offline AI. It's used for features like real-time image recognition or text analysis. The footgun: Core ML only runs models; it doesn't train them.

Canvas in SwiftUI
intermediate2 min read

Canvas in SwiftUI

Canvas is SwiftUI's view for fast, immediate mode drawing. Instead of composing many shape views, you draw paths, text, and images directly into a GraphicsContext, which is far cheaper for complex or animated graphics.

Creating Custom Gestures by Subclassing UIGestureRecognizer
intermediate2 min read

Creating Custom Gestures by Subclassing UIGestureRecognizer

Subclassing UIGestureRecognizer lets you build a custom state machine for touch events. Use it for unique interactions like a rotary dial. The footgun is state management: you must explicitly update the gesture's state or it will never be recognized.

CAShapeLayer: Hardware-Accelerated Vector Drawing
intermediate2 min read

CAShapeLayer: Hardware-Accelerated Vector Drawing

A CAShapeLayer is a GPU-powered stencil for drawing vector shapes. It renders paths like lines and curves far more efficiently than drawing in draw(_:). Use it for custom UI like progress rings.

CABasicAnimation: Simple Property Changes Over Time
intermediate2 min read

CABasicAnimation: Simple Property Changes Over Time

CABasicAnimation animates a single layer property from a start to an end value. Use it for fading a view (opacity), moving it (position), or scaling it (transform).

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.

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.

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

MainActor: Keep Your UI on the Main Thread

MainActor isolates UI-facing state and work on the main actor. Annotating a view model can be appropriate. Keep blocking or CPU-heavy work off it; awaiting asynchronous I/O can suspend without blocking the main thread.

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.

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.

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.

App Groups: Sharing Data Between Your Apps & Extensions
intermediate2 min read

App Groups: Sharing Data Between Your Apps & Extensions

App Groups create a shared 'lockbox' for your apps and extensions on a user's device, bypassing the default app sandbox. Use it to share UserDefaults or files between your main app and its widget. The footgun: you must use specific APIs and manage data sync.

Realm Database
intermediate2 min read

Realm Database

Realm is an object oriented mobile database that stores your Swift model objects directly, without an ORM layer translating to and from SQL, and gives you live objects that automatically update in your UI whenever the underlying data changes.

intermediate2 min read

SQLite: A Database in a Single File

SQLite is a self-contained SQL database engine that lives in a single file. It's ideal for mobile apps needing fast, reliable local data storage without a server. The footgun is using it for high-concurrency write scenarios, where it becomes a bottleneck.

SwiftData
intermediate2 min read

SwiftData

SwiftData is Apple's Swift native persistence framework, introduced in 2023 as a modern layer over the same storage engine Core Data uses. You declare models with the Model macro instead of a visual schema editor, and SwiftUI views stay in sync automatically.

Core Data: An Object Graph, Not Just a Database
intermediate2 min read

Core Data: An Object Graph, Not Just a Database

Core Data isn't just a database wrapper; it's an object graph manager that can persist data. Use it for complex model layers in iOS/macOS apps, especially for caching or document-based work. The footgun is treating it like a simple ORM.

Keychain Services: A Secure Vault for Small Secrets
intermediate2 min read

Keychain Services: A Secure Vault for Small Secrets

Think of Keychain as a system-managed safe deposit box for small secrets like passwords or tokens. It's the go-to for storing API keys or user credentials securely. The main footgun is its clunky C-style API, leading most developers to use a wrapper.

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