Review this before your interviewer does.

AI writes Swift that compiles and still gets you rejected. The iOS Interview Handbook teaches you to spot what’s wrong, fix it, and explain why in the interview. 537 questions, free.

Get the free book
AI suggestion → RecipesModel.swift3 comments
1212func load() async {
13removed: let data = try? await URLSession.shared.data(from: url).0
S-LANG-6 · Swallowed errorJoe Dev reviewed

try? turns a network failure into an empty list. The screen says “no recipes” when the truth is “you’re offline”.

14removed: recipes = (try? JSONDecoder().decode([Recipe].self,
15removed: from: data ?? Data())) ?? []
S-SEC-3 · No status checkJoe Dev reviewed

A 500 error page gets decoded as recipes, fails, and silently disappears too.

13added: state = .loading
14added: do {
15added: state = .loaded(try await service.recipes())
16added: } catch is CancellationError, URLError.cancelled {
S-UX-1 · Missing statesJoe Dev reviewed

Now every outcome has a state: loading, loaded, failed. Leaving the screen isn’t a failure, and a cancelled request throws URLError(.cancelled), not only CancellationError, so catch both.

17added: state = .idle
18added: } catch {
19added: state = .failed("Couldn’t load recipes.")
20added: }
1621}

Comments cite rules from the Good Code or Slop? checklist, part of the video course.

Every topic an iOS interview covers, in one repo.

Ten topics, from value types to system design. Each question answers in the same three parts, and every Swift example compiles in Swift 6 mode at iOS 26 and 27.

All checks passed798 Swift blocks · Swift 6 mode · iOS 26 and 27 · with and without default MainActor isolation
  • 754 compile clean in all four configurations
  • 7 use iOS 27 APIs, tagged in the text
  • 20 labelled bad examples fail exactly as described
  • 17 third-party snippets checked by reading

One answer format, 537 times.

Interviewers decide in the first thirty seconds whether you understand something. Every question in the book is written the way a strong answer sounds.

1

The question

Exactly how an interviewer phrases it, so it sounds familiar on the day.

2

How to describe it

Lead with a confident two-sentence answer, then the key points, follow-ups and pitfalls.

3

How to use it

Working Swift 6 code and best practices, so you can show it as well as say it.

swift-fundamentals/value-vs-reference-types.md

## 1. The Question

“What’s the difference between value types and reference types in Swift? When would you use each?”

## 2. How to Describe

A value type is copied on assignment and when passed, so every variable owns an independent value; a reference type is shared, so several variables point at one instance with an identity. Swift defaults to value types because local reasoning is easier: nothing changes behind your back.

  • Structs, enums and tuples are value types; classes, actors and closures are references
  • Array, Dictionary and String use copy-on-write to make copies cheap
  • Value types made of Sendable parts are automatically Sendable

## 3. How to Use / Implement

A struct Point: Sendable copied and changed, next to a final class Account shared by two variables, with === showing the identity.

Then watch it done: the video course.

Swift Jobs in the AI Era turns the book into ten hours of video. Every lesson teaches a concept, drills one real interview question, and reviews a piece of AI-written code: good code, or slop?

course/swift-jobs-in-the-ai-eraComing soon

Swift Jobs in the AI Era

13 modules · 51 lessons · 602 minutes of videoBuilt on the handbook
  1. M00Welcome: Swift Jobs in the AI Era20 min
  2. M01Swift Fundamentals Through an AI Lens55 min
  3. M02SwiftUI and Observation60 min
  4. M03UIKit and Adaptive Apps42 min
  5. M04Concurrency and Swift 668 min
  6. M05Architecture That Survives AI-Generated Code50 min
  7. M06Networking and Security50 min
  8. M07Data Persistence38 min
  9. M08Testing (and Testing AI's Tests)42 min
  10. M09Performance and Debugging42 min
  11. M10Apple Intelligence and App Intents35 min
  12. M11Mobile System Design50 min
  13. M12Landing the Job50 min

Opening soon. The waitlist hears first, with the launch price.

Join the waitlist

Reviewed by someone who hires.

Richard Kelly has been building on Apple platforms since the Macintosh and Lisa era. He has spent over a decade interviewing candidates and leading development teams, sitting on both sides of the table as a technical lead who hires, manages and codes.

His work spans the whole ecosystem, from Objective-C and UIKit to Swift 6 and SwiftUI. The handbook and the course come from that mix: what interviewers actually ask, and what separates code that compiles from code that ships.

Know why every line is there.

Get the whole iOS 27 Edition free: 537 questions, the guides and the playgrounds. Read it on anything, print what you need, and walk in prepared.

The download links appear straight after you submit. See the privacy policy.