You are on page 1of 5

//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

You might also like