gitGood.dev
Back to Blog

Top 50 Swift & iOS Interview Questions for 2026

P
Pat
6 min read

Top 50 Swift & iOS Interview Questions for 2026

iOS interviews stopped being "implement a UITableView" years ago. The 2026 loop is closer to a backend interview wearing an iPhone costume - concurrency, architecture, and tradeoffs - with one round that doubles as a SwiftUI vs UIKit Rorschach test.

These 50 questions are the ones that actually come up. They are organized roughly the way a real loop runs: language fundamentals, frameworks, architecture, tooling, system design.

If you can answer these out loud - not just in your head - you are in shape for the round.


Swift Language Fundamentals (1-12)

  1. What is the difference between a struct and a class in Swift, and why does it matter for performance?
  2. Explain value vs reference semantics with a concrete example where the choice changes correctness, not just performance.
  3. What is copy-on-write and which standard-library types use it?
  4. Walk me through how ARC handles a parent-child reference cycle. Where do weak and unowned belong?
  5. What does @escaping mean on a closure parameter and when do you actually need it?
  6. Explain inout parameters and the law-of-exclusivity rule that the compiler enforces.
  7. What is the difference between Any, AnyObject, AnyHashable, and Self?
  8. When would you reach for an enum with associated values instead of a protocol with implementations?
  9. How do generics with where clauses differ from protocol-as-existential-type? Why has the community moved toward generics?
  10. Explain some vs any for protocol return types. What changed in Swift 5.7+?
  11. What is a result builder, and where have you seen one outside SwiftUI?
  12. How does defer interact with thrown errors and early returns?

Concurrency (13-22)

  1. Walk me through async/await from suspension point to resumption. Where does the runtime store state during a suspension?
  2. What is an actor? When does isolation hurt instead of help?
  3. Explain @MainActor. What goes wrong if you slap it on every type?
  4. What is Sendable, why is the compiler nagging you about it, and how do you fix the warnings without @unchecked?
  5. Compare Task, Task.detached, and TaskGroup. When is each correct?
  6. How do you cancel a network request started inside a Task? What happens if you ignore cancellation?
  7. What is structured concurrency and why is it safer than GCD's "just dispatch async and hope" model?
  8. How do you bridge a callback API (delegate, completion handler) into async/await?
  9. Strict concurrency checking is on. A library you depend on isn't Sendable. Walk me through the options.
  10. What is the difference between AsyncStream and AsyncThrowingStream? When would you build one yourself?

SwiftUI (23-32)

  1. How does SwiftUI decide when to re-render a view? What invalidates the body?
  2. Explain @State, @Binding, @ObservedObject, @StateObject, @EnvironmentObject, and the Observable macro. When does each match?
  3. What is the difference between an identity in SwiftUI (.id()) and a structural identity? Why does it matter for animation?
  4. How do you debug a view that re-renders too often? What tools does Xcode give you?
  5. When should you reach for GeometryReader, and what is the gotcha that bites every junior dev?
  6. Walk me through how to build a custom layout in SwiftUI 5.
  7. How does NavigationStack differ from the legacy NavigationView, and what changed about deep linking?
  8. SwiftUI lists with thousands of items - how do you keep scroll smooth?
  9. How do you embed UIKit views inside SwiftUI and vice versa, and what are the pitfalls of each direction?
  10. The Observable macro replaced ObservableObject. What did Apple actually change under the hood?

UIKit & Core iOS (33-40)

  1. Why does UITableViewCell reuse exist, and what is the bug pattern when you forget to reset state in prepareForReuse?
  2. Explain Auto Layout from constraint priorities to content hugging vs compression resistance.
  3. What is the responder chain and how do you debug an event that reaches the wrong view?
  4. How does the run loop relate to UI updates? Why can a network callback show up "one frame late"?
  5. Compare Core Data, SwiftData, and a Realm/SQLite-direct approach for a cache that has to survive offline.
  6. When should you use URLSession directly vs Alamofire vs a generated client like Swift OpenAPI Generator?
  7. How does Keychain access work, and what is the right way to share secrets between an app and an extension?
  8. Background modes - audio, location, processing, push. Which one keeps your code running, and for how long?

Architecture & Testing (41-46)

  1. Compare MVVM, VIPER, TCA (The Composable Architecture), and "just a view model and a service." What problem does each actually solve?
  2. How do you make a view model testable when it depends on a singleton like URLSession.shared?
  3. What is dependency injection in a Swift codebase? When is a property wrapper the right answer vs a constructor parameter?
  4. How do you write a snapshot test that does not break every time the design system tweaks a corner radius?
  5. Explain the testing pyramid for an iOS app. Where do XCUITests fit, and why do teams keep writing too many of them?
  6. How would you structure a modular Swift Package Manager codebase for an app with 30 features and 5 teams?

System Design (47-50)

  1. Design the photo upload pipeline for an Instagram-style app. Cover client-side compression, retries, deduplication, and offline behavior.
  2. Design an iOS push notification system end to end - APNs, your backend, the device, the user. Where does silent push fit?
  3. Design a real-time messaging client (WebSocket, reconnect, message ordering, local persistence). What is the worst-case race?
  4. Design an analytics SDK that batches events, survives kill, and never blocks the main thread.

How to Use This List

Do not memorize answers. Pick three questions a day and answer them out loud, on a walk or to a rubber duck. iOS interviews reward people who can talk about tradeoffs, not people who can recite definitions.

If a question makes you blink twice, that is your study target.


Want to drill these in mock-interview format with instant feedback? gitGood does that for $5/month.