Swift — Interview questions
Actors and Data Races
Actor isolation and reentrancy, `Sendable`, `@MainActor` and global actors, and the Swift 6 / 6.2 strict-concurrency rules that turn data races into compile errors.
12 questions
App Lifecycle and System
The app states and launch sequence, background execution and push, deep links and App Groups, permissions, localization, and accessibility.
11 questions
Architecture
MVC, MVVM, VIPER/Clean and unidirectional flow; the Coordinator and Repository patterns, dependency injection, SOLID, and modularizing an app into packages.
14 questions
Async/Await and Structured Concurrency
How `await` suspends without blocking, structured vs unstructured tasks, task groups, cooperative cancellation, continuations, and async sequences.
13 questions
Auto Layout and Rendering
Intrinsic content size and constraint priorities, debugging constraint conflicts, self-sizing cells, and what wrecks scroll rendering (offscreen passes).
9 questions
Closures and Functions
Closures and their capture semantics — escaping vs non-escaping, capture lists, `@autoclosure`, higher-order functions, `inout`, and result builders.
12 questions
Combine
Apple's reactive framework — publishers, subscribers, operators, and MVVM binding.
13 questions
Concurrency with GCD
Dispatch queues, QoS, deadlock, barriers, groups and semaphores, `Operation`, and the data races the tools are there to prevent.
13 questions
Error Handling
Choosing between `throws`, `Result`, and optionals; the `try` variants, `rethrows`, typed throws, and designing error types a UI can render.
8 questions
Memory and ARC
How ARC frees objects, how retain cycles form and are broken with `weak`/`unowned`, and how you hunt a leak with the memory tools.
12 questions
Networking
`URLSession` tasks and caching, `Codable` decoding, token refresh and certificate pinning, retry with backoff, and choosing a transport for a live screen.
12 questions
Performance
Profiling with Instruments, launch time and hitches, image-decoding cost, binary size, the sanitizers, and gating regressions in CI.
13 questions
Persistence
Picking among UserDefaults, files, Keychain, Core Data and SwiftData; the Core Data stack, its threading rules and migrations, and on-disk data protection.
14 questions
Property Wrappers and Macros
What a property wrapper compiles to, property observers and `lazy`, KeyPaths, and how a Swift macro like `@Observable` differs from a wrapper.
10 questions
Protocols and Generics
Protocol-oriented programming, associated types, generic constraints, `some` vs `any`, and how protocol requirements are dispatched.
13 questions
Swift Basics
Optionals, `let`/`var`, enums, collections, `guard`/`defer`, and pattern matching — the language foundation every iOS interview starts from.
13 questions
SwiftUI
Declarative UI framework — state, bindings, and view composition.
18 questions
iOS System Design
Designing iOS modules and libraries — concurrency, offline support, networking, and extensibility.
16 questions
Testing
What a unit test asserts, test doubles, testing async and actor-isolated code, the Swift Testing framework, snapshots, and what coverage does not tell you.
10 questions
Tooling and Release
Dependency managers and XCFrameworks, code signing and provisioning, `.xcconfig` and secrets, crash symbolication, linking choices, and shipping safely.
9 questions
UIKit Fundamentals
The view-controller lifecycle, `frame` vs `bounds`, cell reuse, the responder chain and hit-testing, `CALayer`, and gesture recognizers.
12 questions
Value and Reference Types
How struct value semantics differ from class reference semantics at runtime — copying, mutation, identity, copy-on-write, and where each type lives.
11 questions