iOS Study Guide
Study Guide
📖 Core Concepts
iOS – Apple’s Unix‑like, proprietary mobile OS for iPhone, iPad, iPod Touch (≤ 16.0) and the basis for watchOS, tvOS, iPadOS.
XNU kernel / Darwin – Hybrid Mach‑microkernel + BSD that powers iOS; includes KASLR (randomizes kernel addresses).
Sandboxing – Each app runs in its own container; cannot read/write other apps’ data without explicit APIs.
64‑bit transition – iOS 7 introduced a native 64‑bit kernel & libraries; mandatory for all App Store submissions after June 2015; 32‑bit apps dropped in iOS 11.
SDK & UIKit – The iOS Software Development Kit (free for macOS) plus UIKit provide UI components, simulators, and hardware APIs.
Multitasking APIs – Background audio, location, push, and local notifications let apps continue limited work when not foreground.
Accessibility – VoiceOver, AssistiveTouch, Braille support, Dynamic Type, and other features built into the OS.
---
📌 Must Remember
App Store 64‑bit rule: New apps (Feb 2015) and updates (June 2015) must be 64‑bit.
iOS 11: No 32‑bit app launches; devices with 32‑bit ARM CPUs lose support.
KASLR introduced: iOS 6 – makes kernel‑memory exploits harder.
Control Center access: Swipe down from top‑right (Face ID) / up from bottom (Touch ID).
Notification Center access: Swipe down from top‑left.
Dynamic Type (iOS 7) & System Font (iOS 9): Users can scale text; default UI font is San Francisco.
App Library (iOS 14): Auto‑categorizes all installed apps; replaces the need for manual folders.
Background execution limits: Only specific APIs (audio, location, push, local notifications) are allowed.
Developer requirements: Enroll in Apple Developer Program to test on devices & distribute via App Store.
---
🔄 Key Processes
Submitting a 64‑bit app
Build with Xcode ≥ 7 → set Architectures to Standard (arm64).
Test on a device with an A7‑class chip or later.
Archive, validate, and upload through App Store Connect.
Enabling Background Modes (e.g., audio)
Open project → Capabilities → toggle Background Modes.
Check the specific mode (Audio, Location, Remote notifications, etc.).
Implement required delegate methods (e.g., application(:didReceiveRemoteNotification:fetchCompletionHandler:)).
Using the Files App & Document Provider
Add a Document Provider Extension target.
Implement UIDocumentPickerViewController to let users pick or export files.
Files appear in the system Files app under the provider’s folder.
Configuring VoiceOver support
Use default UIKit controls (they are VoiceOver‑ready).
For custom views, set accessibilityLabel, accessibilityHint, and accessibilityTraits.
---
🔍 Key Comparisons
iOS vs. Android – iOS is proprietary, Unix‑like, closed ecosystem; Android is open‑source, Linux‑based, more hardware‑agnostic.
64‑bit vs. 32‑bit apps – 64‑bit apps can access > 4 GB RAM, run on newer CPUs, and are required for App Store; 32‑bit apps are unsupported after iOS 11.
Background Audio vs. Background Location – Audio keeps the app alive for continuous media playback; Location wakes the app only on significant location changes.
Control Center vs. Notification Center – CC provides quick toggles (brightness, volume, etc.); NC shows chronological alerts and widgets.
UIKit vs. SwiftUI (not in outline but implied) – UIKit is the mature, imperative UI framework; SwiftUI is newer, declarative (outside this outline).
---
⚠️ Common Misunderstandings
“All apps run in the background” – Only apps that explicitly enable one of the limited background modes can continue execution; others are suspended.
“Jailbreaking removes all security” – Jailbreaks bypass sandboxing but do not eliminate hardware‑based encryption or secure boot; they merely expose the filesystem.
“iOS updates always add new features” – Major annual releases add features; minor updates are mostly security patches.
“VoiceOver works automatically for any UI” – Custom controls need explicit accessibility attributes; default UIKit controls are auto‑supported.
---
🧠 Mental Models / Intuition
Sandbox = “locked room” – Each app has its own locked room; only the door (public API) lets data out.
64‑bit = “wide highway” – Allows more data to travel at once; older 32‑bit cars can’t use it after the road is closed (iOS 11).
KASLR = “shuffling the deck” – Randomizes where the kernel lives each boot, so an attacker can’t guess addresses.
Control Center = “quick‑access toolbox” – Think of it as a pocket toolbox you pull out with a swipe.
---
🚩 Exceptions & Edge Cases
Older devices (iPhone 4, iPad 2) stopped receiving iOS updates after iOS 9 – they lack required 64‑bit hardware.
Background audio can run indefinitely, but background location is throttled – location updates may be paused to save battery.
App Library is unavailable on iOS 13 and earlier – only devices running iOS 14+ see it.
Dynamic Type scaling does not affect apps that lock font sizes – developers must adopt Auto Layout & scalable fonts.
---
📍 When to Use Which
Choose UIKit vs. custom UI code: Use UIKit for standard controls (auto VoiceOver, KASLR‑safe); only build custom views when UIKit cannot meet design specs.
Select background mode: Use Audio for media playback; Location for navigation apps; Push notifications for server‑driven alerts; avoid background tasks for simple UI updates.
Decide between App Library vs. folders: On iOS 14+, rely on App Library for automatic organization; use folders only for user‑specific grouping.
---
👀 Patterns to Recognize
Swipe‑down from top‑right → Control Center; top‑left → Notification Center – consistent across Face ID devices.
“iOS X introduced Y” – many exam questions pair a version number with a feature (e.g., iOS 7 → Dynamic Type, iOS 8 → Widgets, iOS 10 → Siri third‑party).
“64‑bit mandatory after 2015” – any question about app submission dates will hinge on this rule.
Sandbox + Document Picker – apps that need external files always go through a picker; direct file paths are disallowed.
---
🗂️ Exam Traps
Distractor: “All background tasks run indefinitely.” – Wrong; only specific APIs are allowed.
Trap: “iOS 11 still runs 32‑bit apps on newer hardware.” – Incorrect; 32‑bit apps are completely blocked.
Misleading option: “Control Center is accessed by swiping up on all iPhones.” – Only Touch ID models; Face ID models use swipe‑down from top‑right.
Near‑miss: “Swift replaced Objective‑C in 2012.” – Swift was introduced in 2014; Objective‑C remains supported.
Confusion: “Jailbreaking is illegal.” – In the U.S., it is exempted for running legally obtained apps (2010 DMCA exemption).
---
or
Or, immediately create your own study flashcards:
Upload a PDF.
Master Study Materials.
Master Study Materials.
Start learning in seconds
Drop your PDFs here or
or