Guide
iOS INTERVIEW Qs
Technical questions and model answers for interviewing iOS developers. Covers UIViewController lifecycle, SwiftUI vs UIKit, memory management/ARC, GCD, Core Data, and app lifecycle.
Last updated: May 2026
Explain the UIViewController lifecycle
UIViewController has loadView, viewDidLoad, viewWillAppear, viewDidAppear, viewWillDisappear, viewDidDisappear, and viewDidUnload (deprecated). viewDidLoad is called once for initialization. viewWillAppear/viewDidAppear are called when the view appears, and viewWillDisappear/viewDidDisappear when it disappears. Since iOS 13, UISceneDelegate scene lifecycle must also be considered.
What's the difference between SwiftUI and UIKit?
SwiftUI is Apple's declarative UI framework with real-time previews (Canvas) and state-driven redraws. UIKit is imperative, supporting Storyboards, XIBs, and programmatic layouts. SwiftUI requires iOS 13+ and suits new and small-to-medium apps. UIKit remains necessary for advanced customization and maintaining legacy projects. They are interoperable via UIViewRepresentable and UIHostingController.
Explain memory management and ARC in iOS
ARC (Automatic Reference Counting) automatically manages memory via compiler-inserted retain/release/autorelease calls. strong is the default reference. weak prevents retain cycles, and unowned is a non-optional weak reference. Be careful with retain cycles in delegates and closures, and use [weak self] appropriately.
Explain the difference between GCD and OperationQueue
GCD (Grand Central Dispatch) is a C-based low-level API using DispatchQueue for async execution. It is lightweight and offers direct control. OperationQueue is a higher-level API built on GCD using Operation (NSOperation), supporting dependencies, cancellation, priorities, and suspension. Use OperationQueue for complex async workflows and GCD for simple tasks.
What are the use cases and benefits of Core Data?
Core Data is an Apple framework for object graph management and persistence. It supports SQLite, Binary, XML, and In-Memory store types, uses NSFetchRequest for fetching, and NSFetchedResultsController for UI integration. It supports relationships, validation, migrations, and undo/redo. It suits large local data management, while UserDefaults is better for lightweight key-value storage, and CloudKit or Realm are alternatives for server sync.
Explain the iOS app lifecycle and state preservation
iOS apps have Not Running, Inactive, Active, Background, and Suspended states. State transitions are handled in AppDelegate (or SceneDelegate). State preservation uses UserDefaults, Codable file saving, Core Data, or SwiftData. Since iOS 13, scene-based lifecycle enables multi-window support. Background Fetch and Background Processing Tasks allow continued processing in the background.
Contact
Looking for an iOS Developer?
I can support your technical interviews, advise on hiring, or join directly as your iOS engineer.