00

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

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

07

Contact

Looking for an iOS Developer?

I can support your technical interviews, advise on hiring, or join directly as your iOS engineer.

iOS Developer Interview Questions | Code Your Reality