//1
IOS INTERVIEW WORKSHEET
Learning iOS for your next project or interview? Use this practical guide to create a targeted study plan. Successful
apps solve ordinary problems in a variety of ways. The worksheet highlights these common, yet relevant, topics.
OBJECTIVE-C
Even though many are excited about Swift, most large-scale iOS projects exist in Objective-C. Even if you are plan-
ning to write a new Swift-based project, knowledge of Objective-C will help you better understand the history and
evolution of the iOS Framework.
Objective-C Topic Ability to Explain Ability to Code
Classes, Methods & Properties
Synthesize Keyword (@synthesize)
Dealloc
Reference Counting Rules (retain, release)
Property References (strong, weak)
Method Signatures
Protocols
Blocks
Categories
NSDictionary
NSArray
NSNull vs. Nil
NSSet (when and why)
NSDate
waynewbishop.com
//2 Swift Algorithms - iOS Interview Worksheet (Version 3.0)
Objective-C Topic Ability to Explain Ability to Code
NSNumber
Initializers (single and multiple)
NSMutableString
NSError
NSURLSession
NSJSONSerialization
SWIFT
Swift is the new standard for building iOS projects. As Swift evolves, coders will need to adapt their skills ac-
cordingly. To stay competitive, stay current. With Swift now available as open-source, developers should also be
comfortable with swift.org, Github change proposals and the Swift evolution process.
Swift Topic Ability to Explain Ability to Code
Variables vs. Constants
Structs, Classes, Methods & Properties
Value types vs. Reference types
Method Signatures
Strings & Unicode
Arrays
Sets vs. Arrays (when and why)
Tuples
Dictionaries
Optionals (regular, implicit and unwrapping)
Generics (types, functions and constraints)
Protocols
Extensions
Enums
waynewbishop.com
//3
Swift Topic Ability to Explain Ability to Code
Closures
Initializers (single and multiple)
Error Handling
Bridging Headers
Swift.org
Swift API Design Guidelines
Swift Playgrounds (iPad app)
DESIGN PATTERNS
Once you’ve explored Objective-C and Swift, being able recognize and implement design patterns will help you build
a scalable solution. While most patterns aren’t exclusive to iOS, being able to code specific Apple-based designs will
be your primary objective.
Design Patterns Topic Ability to Explain Ability to Code
Object-Oriented Design
Protocol-Orientated Design (Swift)
MVC (Model View Controller)
Key-Value Coding
IBOutlet / IBAction
Notifications (register and receive)
Delegation
Inheritance
Singleton
Factory
waynewbishop.com
//4 Swift Algorithms - iOS Interview Worksheet (Version 3.0)
USER INTERFACES
Mobile users appreciate intuitive and easy-to-navigate user interfaces. Here are recommended tools and services for
creating fantastic experiences with iOS.
User Interface Topics Ability to Explain Ability to Code
Storyboards
Segues (passing data)
UIView Lifecycle
UIView Animations
Gesture Recognizers
UITableViewController
UITableViewCell (custom cells)
Animation Chaining
Subclassing UIView (why & how)
Human Interface Guidelines (document)
Creating interfaces directly in code
Asynchronous UITableView data loading (multithreading)
UINavigationController
Core Animation
DATA MANAGEMENT
Coding solutions often requires using Objective-C and Swift in conjunction with the iOS Framework. Manage your
data effectively by mastering the following topics:
Data Management Topic Ability to Explain Ability to Code
Big O Notation
JSON (Parse, POST, GET )
Grand Central Dispatch
Core Data
waynewbishop.com
//5
Data Management Topic Ability to Explain Ability to Code
NSUserDefaults
XCTest
Info.plist
File’s Owners Object
NSURLSession
UITableView (Delegate & Datasource)
CocoaPods
VERSION CONTROL
Knowing how to manage code (either on your own or as part of a team) makes you a valuable asset. While there
are various version control systems available, knowledge of Git is highly valued in most development situations. As
such, its ideal that one understand Git concepts, tools and processes.
Version Control Topic Ability to Explain Ability to Code
Working Copies, Branches & Stashes
Local vs. Remote Repositories
Stage, Pull, Push & Fetch
Merge vs. Rebase
Fork, Clone
Managing Code Conflicts
Working with Github
Managing Pull Requests
waynewbishop.com