iOS & Swift Interview Handbook – Core Vocabulary

0.0(0)
studied byStudied by 0 people
GameKnowt Play
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/151

flashcard set

Earn XP

Description and Tags

This flashcard set covers essential vocabulary and concepts from the 2025 iOS & Swift Interview Handbook, including Swift language features, memory management, concurrency, architectural patterns, testing, Git workflows, SwiftUI state management, Combine, networking, and security topics.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

152 Terms

1
New cards

Optional

A Swift type that can hold a value or nil, written with a ? after the type name.

2
New cards

Optional Binding

Safely unwrapping an optional using if let or guard let to access its value only if it is non-nil.

3
New cards

Guard Statement

A Swift control-flow statement that exits the current scope when a condition fails; often used for early-exit optional binding.

4
New cards

Nil-Coalescing Operator (??)

Returns the wrapped value of an optional or a default value when the optional is nil.

5
New cards

Force Unwrapping

Using ! to access an optional’s value; crashes at runtime if the value is nil.

6
New cards

var

Keyword that declares a mutable variable whose value can change.

7
New cards

let

Keyword that declares an immutable constant whose value cannot change after assignment.

8
New cards

Struct

A Swift value type stored on the stack, copied on assignment, and lacking inheritance.

9
New cards

Class

A Swift reference type stored on the heap, passed by reference, and supporting inheritance and deinit.

10
New cards

Actor

A reference type introduced for Swift concurrency that provides data isolation and thread safety by serializing access.

11
New cards

Stored Property

A property that stores a constant or variable value directly in an instance.

12
New cards

Computed Property

A property that calculates its value every time it is accessed, using get / set.

13
New cards

Type Inference

Swift’s ability to deduce the data type of a constant or variable from its initial value.

14
New cards

mutating Keyword

Marks a struct/enum method that changes the instance’s stored properties.

15
New cards

Extension

Adds new functionality to an existing type without subclassing or modifying the original source.

16
New cards

Protocol

A blueprint of properties and methods that a type can adopt to provide specific functionality.

17
New cards

Codable

A type alias for Encodable & Decodable that allows automatic JSON encoding/decoding.

18
New cards

Access Control – open

Highest visibility; accessible and subclassable outside the defining module.

19
New cards

Access Control – public

Accessible outside the module but not subclassable/overridable there.

20
New cards

Access Control – internal

Default level; accessible anywhere inside the same module.

21
New cards

Access Control – fileprivate

Accessible only within the same source file.

22
New cards

Access Control – private

Accessible only within the enclosing declaration.

23
New cards

Protocol-Oriented Programming (POP)

Swift design style that favors protocols and value types over inheritance.

24
New cards

Delegation

One-to-one communication pattern where an object hands off tasks to another object via a protocol.

25
New cards

NotificationCenter

Broadcast mechanism for one-to-many communication inside an app.

26
New cards

Associated Type

A placeholder type declared in a protocol and specified by conforming types.

27
New cards

Generic

A reusable function or type that works with any type that meets given constraints.

28
New cards

Single Responsibility Principle

Each class or module should have only one reason to change.

29
New cards

Open-Closed Principle

Software entities should be open for extension but closed for modification.

30
New cards

Liskov Substitution Principle

Subtypes must be substitutable for their base types without altering correctness.

31
New cards

Interface Segregation Principle

Clients should not be forced to depend on methods they do not use; prefer fine-grained protocols.

32
New cards

Dependency Inversion Principle

Depend on abstractions, not concrete implementations.

33
New cards

Automatic Reference Counting (ARC)

Swift’s compile-time memory management that tracks strong references to class instances.

34
New cards

Strong Reference

Default ownership that increments an object’s reference count and prevents deallocation.

35
New cards

Weak Reference

A non-owning reference that does not keep an object alive and becomes nil when the object deallocates.

36
New cards

Unowned Reference

A non-owning, non-optional reference assumed to outlive the referencing property; crashes if accessed after deallocation.

37
New cards

Retain Cycle

A memory leak where two objects hold strong references to each other, preventing deallocation.

38
New cards

Grand Central Dispatch (GCD)

C-level API that manages concurrent tasks using dispatch queues.

39
New cards

OperationQueue

Higher-level concurrency abstraction over GCD that supports dependencies, cancellation, and KVO.

40
New cards

async/await

Swift concurrency keywords that allow writing asynchronous code in a linear, readable style.

41
New cards

DispatchGroup

GCD construct that synchronizes multiple asynchronous tasks and notifies when all complete.

42
New cards

Auto Layout

Constraint-based system that dynamically calculates view sizes and positions for different screen sizes.

43
New cards

frame

A view’s position and size in its superview’s coordinate space.

44
New cards

bounds

A view’s position and size in its own coordinate space.

45
New cards

Storyboard

Visual interface file that contains multiple view controllers and segues in Interface Builder.

46
New cards

XIB

Interface Builder file representing a single view or view controller’s layout.

47
New cards

Programmatic UI

Building user interfaces entirely in Swift code without storyboards or XIBs.

48
New cards

viewDidLoad

UIViewController lifecycle method called once after the view is loaded into memory.

49
New cards

viewWillAppear

Lifecycle method called just before a view becomes visible.

50
New cards

viewDidAppear

Lifecycle method called immediately after a view becomes visible.

51
New cards

UITableView

UIKit component that displays a single-column, vertically scrolling list.

52
New cards

UICollectionView

UIKit component for grid or custom-layout scrolling content using cells and supplementary views.

53
New cards

prepare(for:sender:)

UIViewController method to configure destination view controller before a segue.

54
New cards

Diffable Data Source

Modern API for table/collection views that applies snapshot diffs for automatic, animated updates.

55
New cards

URLSession

Foundation API for HTTP networking tasks such as data, download, and upload requests.

56
New cards

Combine

Apple’s reactive framework that uses publishers and subscribers to process asynchronous events.

57
New cards

Publisher

Combine type that emits values over time to subscribed observers.

58
New cards

Subscriber

Combine object that receives values and completion events from a publisher.

59
New cards

UserDefaults

Persistent storage for small key-value pairs like settings and preferences.

60
New cards

Core Data

Apple framework for object graph management and persistence using SQLite under the hood.

61
New cards

Realm

Third-party mobile database offering fast object storage with simple APIs and built-in sync.

62
New cards

Model-View-Controller (MVC)

Classic architecture where controllers mediate between data (Model) and UI (View).

63
New cards

Model-View-ViewModel (MVVM)

Architecture that adds a ViewModel layer to format data for views, improving testability.

64
New cards

VIPER

iOS architecture dividing modules into View, Interactor, Presenter, Entity, and Router for high modularity.

65
New cards

Singleton Pattern

Creational pattern that ensures a class has only one shared instance throughout the app.

66
New cards

Keychain

Encrypted storage service for sensitive data like passwords and tokens.

67
New cards

Deep Linking

Ability to open a specific screen in an app via a custom URL or universal link.

68
New cards

App Transport Security (ATS)

iOS security feature enforcing secure HTTPS connections by default.

69
New cards

Unit Test

Automated test that verifies the behavior of a small piece of code, typically a single function or class.

70
New cards

UI Test

Automated test that simulates user interactions to verify the UI behaves correctly.

71
New cards

TestFlight

Apple distribution platform for beta testing iOS apps with external users.

72
New cards

App Clip

Lightweight, fast subset of an iOS app (<10 MB) launched via QR, NFC, or link for quick tasks.

73
New cards

Property Wrapper

A generic structure/class that adds custom getter/setter logic around a property using @ syntax.

74
New cards

@State

SwiftUI property wrapper for view-local, mutable state that triggers UI updates.

75
New cards

@Binding

SwiftUI wrapper that creates a two-way connection to another state value.

76
New cards

@StateObject

SwiftUI wrapper that instantiates and owns an ObservableObject for the view’s lifetime.

77
New cards

@ObservedObject

SwiftUI wrapper that observes an external ObservableObject and updates the view when it changes.

78
New cards

@EnvironmentObject

SwiftUI wrapper that injects a shared ObservableObject into the environment for descendant views.

79
New cards

@Published

Property wrapper in Combine that marks a property for publisher updates when it changes.

80
New cards

@MainActor

Swift concurrency attribute that guarantees annotated code runs on the main thread.

81
New cards

Task

Structured concurrency unit that performs asynchronous work and is cancelled with its parent scope.

82
New cards

TaskGroup

API for running multiple child tasks concurrently under structured concurrency.

83
New cards

DetachedTask

Unstructured concurrency task that runs independently of the parent context.

84
New cards

Thread.sleep

Blocks the current thread for a time interval; not cooperative with Swift concurrency.

85
New cards

Task.sleep

Suspends an async task for a duration without blocking its underlying thread.

86
New cards

Race Condition

Bug that occurs when multiple threads access shared data at the same time causing unpredictable results.

87
New cards

Deadlock

State where two or more threads wait indefinitely for resources locked by each other.

88
New cards

Feature Branch

Git branching strategy where each new feature is developed in its own branch.

89
New cards

Pull Request (PR)

GitHub/GitLab workflow step where code is reviewed and discussed before merging.

90
New cards

Git Flow

Branching model with main, develop, feature, release, and hotfix branches for organized collaboration.

91
New cards

Fastlane

Command-line toolchain that automates building, signing, testing, and releasing iOS apps.

92
New cards

CI/CD

Continuous Integration/Continuous Deployment pipelines that build, test, and deliver code automatically.

93
New cards

SwiftLint

Static-analysis tool that enforces Swift style and best-practice rules.

94
New cards

KeyPath

Type-safe reference to a property of a type, usable for dynamic access.

95
New cards

inout Parameter

Function parameter modifier that allows a value to be modified inside the function and written back to the caller.

96
New cards

Escaping Closure

Closure that outlives the function call, marked with @escaping.

97
New cards

Non-Escaping Closure

Default closure parameter that must complete during the function call.

98
New cards

Function Builder / @resultBuilder

Swift feature for building nested DSL structures (e.g., SwiftUI View hierarchies) from declarative syntax.

99
New cards

@autoclosure

Attribute that automatically wraps an expression passed to a function into a closure.

100
New cards

Any

Type-erased container that can hold a value of any type (value or reference).