What is UIResponder?
Follow a single tap from the button that was pressed up to the app delegate, and use that walk to explain first responder, nil-targeted actions, and why hit-testing is a separate step
Q/A library
Search by title or keywords, narrow by topic, difficulty, or tag, then open a question for a full write-up with code to practice your answer.
Follow a single tap from the button that was pressed up to the app delegate, and use that walk to explain first responder, nil-targeted actions, and why hit-testing is a separate step
Explain UserDefaults as a small plist-backed prefs store covering size limits, async disk writes, suiteName vs standard, and why main-thread access is allowed but not free
Explain Swift's three method-dispatch mechanisms—static, table (vtable and protocol witness tables), and Objective-C message send—and show when final, value types, and @objc dynamic change which one the compiler uses
Compare Dictionary and NSCache on one concrete example, an image cache for a photo feed, and show where the two diverge on thread safety, automatic eviction, and key and value rules
Contrast Combine-era ObservableObject MVVM with iOS 17+ @Observable MVVM, keeping the same Provider → ViewModel → View boundaries, DI, and testability rules
Distinguish race conditions, data races, priority inversion, deadlock, and actor reentrancy anomalies with short Swift examples and practical fixes
Explain that deinit runs where the last strong reference is released, then connect that rule to UI safety, MainActor isolation, and isolated deinit
Start with the race condition, then compare locks, semaphores, queues, barriers, and actors for protecting shared mutable state in real Swift code
Walk through every important UIViewController lifecycle callback, explain its purpose, show the call order with print(#function), and clarify where to put subview setup, constraints, and observation
GCD is Apple's low-level API for scheduling work on dispatch queues. OperationQueue is a higher-level Foundation API that represents work as Operation objects with dependencies, cancellation, priorities, and concurrency limits.
Task creates unstructured work that inherits context, Task.detached creates unstructured work without inheriting context, and a task group creates structured child tasks that the parent awaits together.
.async schedules work and returns immediately, while .sync blocks the caller until the work finishes. On the main queue, .async is the normal way to perform UI work, whereas calling .sync from the main thread causes a deadlock.
Explain Swift's protocol-driven collection model, then compare Array, Set, Dictionary, and Range by behavior, complexity, hashing, ordering, copy-on-write, and thread-safety tradeoffs
Define retain cycles in ARC terms, show the most common ways teams create them, and explain how to prevent and debug them in production code
Compare Combine-era observation with the iOS 17 Observation system, focusing on invalidation granularity, boilerplate, and how ownership changes in SwiftUI
StateObject vs ObservedObject comes down to ownership, so map each SwiftUI property wrapper to who owns the object rather than memorizing them in isolation
Explain when fixed child tasks make async let the better tool, and when dynamic fan-out or incremental result handling pushes you to task groups
Explain how frame and bounds describe the same view from two different coordinate systems, then connect that model to layout, transforms, and scrolling