Skip to content

Instantly share code, notes, and snippets.

@jkereako
Last active January 15, 2024 14:23
Show Gist options
  • Star 39 You must be signed in to star a gist
  • Fork 9 You must be signed in to fork a gist
  • Save jkereako/ee100cd50f09a225674f to your computer and use it in GitHub Desktop.
Save jkereako/ee100cd50f09a225674f to your computer and use it in GitHub Desktop.
This is a list of documents I have read and plan to read. Speaking from experience, if you take the time to pour over these documents and take notes on topics of interest, you will greatly improve your skill.

iOS developer reading list

The best way to learn and master iOS development is to read the official documentation. It can be boring but you can trust its accuracy and the information will be presented without opinion.

Read documents in order where indicated.

Topics

Preliminary guides

If you're new to iOS development, then start here. However, even if you're an advanced iOS developer the Human Interface Guidelines (commonly known as the HIG) ought to be your main resource when designing apps.

  1. Start Developing iOS Apps Today
  2. iOS Technology Overview
  3. iOS Human Interface Guidelines (HIG)
  4. App Programming Guide for iOS

Back to top

Programming languages

For decades, Objective-C was the only programming language for Apple. However, in June of 2014, Swift was introduced and ever since then Apple has been pushing developers to write code in Swift over Objective-C. If you are just starting out with iOS development, then learn Swift first. However, Objective-C isn't going away. It's still heavily used throughout the tech industry and some companies conciously choose Objective-C over Swift.

Objective-C

  1. Object-Oriented Programming with Objective-C
  2. Programming with Objective-C
  3. Concepts in Objective-C Programming
  4. Objective-C Runtime Programming Guide
  5. Adopting Modern Objective-C
  6. A Short Practical Guide to Blocks
  7. Blocks Programming Topics
  8. Core Foundation Design Concepts

Back to top

Swift

Back to top

Cocoa

These documents offer more insight into basic classes, objects and data structures of the Foundation framework. There is no order to these, but you ought to read them front to back.

Back to top

Error handling and debugging

Back to top

Views and controllers

Back to top

Assets and resources

Networking

Back to top

Data structures

Back to top

File system

Back to top

Design patterns

Back to top

Persistent storage

Back to top

Concurrency

Back to top

  • Framework Programming Guide

  • File System Programming Guide

  • SDK Compatibility Guide

  • Xcode Overview

  • Auto Layout Guide

  • Testing with Xcode

  • Notification Programming Topics

  • iOS Simulator User Guide

References

Read these documents ad-hoc

  • Interface Builder Help
  • OS X
  • Runtime Configuration Guidelines

iOS 8

  • App Extension Programming Guide

  • Handoff Programming Guide

  • iCloud Design Guide

  • String Programming Guide for Core Foundation

  • Date and Time Programming Guide for Core Foundation

  • Information Property List Key Reference

Performance

Back to top

Security

Back to top

Location

Location and Maps Programming Guide

Back to top

Graphics

  1. Camera Programming Topics for iOS
  2. Drawing and Printing Guide for iOS
  3. Quartz 2D Programming Guide
  4. Image I/O Programming Guide
  5. Core Image Programming Guide
  6. Animation Types and Timing Programming Guide
  7. Core Animation Programming Guide
  8. SpriteKit Programming Guide
  9. OpenGL ES Programming Guide for iOS
  10. AV Foundation Programming Guide

Back to top

Metal

Metal is for 3D graphics. I don't know a damn thing about 2D animation nevermind 3D. But, I put these documents here because I would like to learn about them.

Back to top

Kits

Cocoa

  • Core Foundation Design Concepts
  • Collections Programming Topics for Core Foundation
  • Core Text Programming Guide

Back to top

Clang and LLVM

Back to top

@jkereako
Copy link
Author

Description

The iOS developer library is a clusterfuck, especially for folks who want to learn iOS development basics.

For example, instead of serving static content, the content in the Developer Library is loaded asynchronously with JavaScript. If you're like me and pay $80 a month for lousy service from Comcast, you will have to wait several seconds for the content to load. Then, once the content has loaded, you'll see a long list of programming guides, technical notes, example apps and programming references. It's overwhelming.

I've distilled the documentation to programming guides and technical notes which serve as programming guides. If you want to learn iOS development, then use this list and ignore the iOS developer library.

All that aside, the actual content is superior. If you spend the time reading Apple's documentation, you will become an advanced iOS developer. Know that learning takes time and concentration.

The content

I lost steam towards the end of the document, that's why the formatting is unlike the rest of the document.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment