Skip to content
tezvyn:

iOS & Swift

SwiftUI, UIKit, Xcode, Swift language, Apple platforms

180 bites

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

Concepts in iOS & Swift, page 4

NavigationSplitView: Adaptive Layouts for All Screen Sizes
intermediate2 min read

NavigationSplitView: Adaptive Layouts for All Screen Sizes

NavigationSplitView is a responsive container for multi-column layouts. It shows a sidebar, content, and detail view on large screens but collapses to a stack on small ones. Use it for master-detail UIs like a mail app.

Deep Linking: Go Beyond the App's Home Screen
advanced2 min read

Deep Linking: Go Beyond the App's Home Screen

A deep link is a URL for a specific screen inside your app, not just its front door. Use it to let users jump directly to content from emails, websites, or other apps, but be sure to handle state changes like login before redirecting.

NavigationPath (SwiftUI)
advanced2 min read

NavigationPath (SwiftUI)

NavigationPath is a type erased stack of navigation destinations that backs a SwiftUI NavigationStack, letting one path hold a mix of different hashable data types so you can push, pop and control deep, heterogeneous navigation flows programmatically.

Custom UIViewController Transitions: Beyond the Defaults
advanced2 min read

Custom UIViewController Transitions: Beyond the Defaults

A custom transition lets you choreograph the handoff between two screens, defining the exact animation. Use it for unique experiences like a card expanding to fill the screen.

UserDefaults: Your App's Junk Drawer for Settings
easy2 min read

UserDefaults: Your App's Junk Drawer for Settings

UserDefaults is a simple key-value store for persisting small bits of data, like a dictionary that saves itself. Use it to remember user preferences like enabling dark mode or a username. The footgun: don't use it for large files or sensitive data.

App Sandbox: A Digital Playpen for Your App
easy2 min read

App Sandbox: A Digital Playpen for Your App

The App Sandbox is a digital playpen for your app, restricting it to its own files and resources. It's a core security feature on iOS and macOS, preventing apps from accessing user data or system files without explicit permission.

FileManager: Your App's Interface to the File System
easy2 min read

FileManager: Your App's Interface to the File System

FileManager is your app's librarian for the file system. Instead of using raw paths, you ask it to find, create, or delete files and directories. Always handle potential errors, as file operations can easily fail.

Swift's Codable: Effortless JSON & Data Parsing
easy2 min read

Swift's Codable: Effortless JSON & Data Parsing

Codable is a compiler magic trick that automatically converts Swift objects to and from formats like JSON. It's used constantly for parsing API responses or saving data to disk. The footgun: decoding fails if JSON keys don't exactly match your property names.

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.

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.

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.

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.

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.

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.

NSPersistentContainer: Your Core Data Stack in One Object
advanced2 min read

NSPersistentContainer: Your Core Data Stack in One Object

NSPersistentContainer is a pre-built engine for Core Data, managing the model, coordinator, and context. It's the standard for iOS 10+ apps. The footgun is forgetting you can customize it or using its main viewContext for heavy background work, which blocks…

Core Data Migrations: Evolving Your App's Schema Safely
advanced2 min read

Core Data Migrations: Evolving Your App's Schema Safely

Core Data migrations are your app's plan for evolving its local data model without losing user data. Use them when shipping a new version that adds or renames attributes. The footgun is assuming 'lightweight' migration works for everything; it doesn't.

NSFetchedResultsController: The Bridge for Core Data & UI
advanced2 min read

NSFetchedResultsController: The Bridge for Core Data & UI

NSFetchedResultsController is a bridge that automatically syncs a Core Data database with a UITableView. It efficiently manages data fetching, memory, and UI updates for dynamic lists, like a social feed.

URLSession: The Core of iOS Networking
easy2 min read

URLSession: The Core of iOS Networking

URLSession is the engine for all network requests in Apple apps. Use it to fetch API data, download images, or upload files. The biggest footgun is blocking the main UI thread, which freezes your app; always perform network tasks asynchronously.

URLRequest: The Blueprint for a Network Call
easy2 min read

URLRequest: The Blueprint for a Network Call

URLRequest is the recipe for a network call, not the call itself. It bundles the URL, HTTP method, headers, and body. You hand this 'order form' to URLSession to execute. The footgun is thinking URLRequest sends the request—it only describes it.

JSONDecoder: Turning JSON into Swift Types
easy2 min read

JSONDecoder: Turning JSON into Swift Types

JSONDecoder is your translator for turning raw JSON data into native Swift structs or classes. It's the standard way to parse API responses, letting you work with typed, safe objects.

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