Learning Objective-C, OS X, and iOS Programming
Since switching to a Mac last year, I’ve been determined to learn as much as I can about Objective-C and native OS X and iOS development. Typically, when I’m looking to learn a new language or subject, after I’ve exhausted the free online materials, I head straight to books from O'Reilly, Manning, or Addison-Wesley for a more in-depth look at the topic. This time around, I was very surprised to find dozens of very high quality programming guides and reference documents for developing on Apple platforms. To be honest, I was blown away by the quality of this documentation, and have yet to pick up a Cocoa or Objective-C book as I would have done in the past.
For starters, Programming with Objective-C is Apple’s official Objective-C language documentation. I started with this document, as I had never worked with Objective-C before and figured this was as good a starting place as any. Once you are able to wrap your head around the differences between things like Objective-C’s “message passing” (and it’s syntax) versus a language like C#, Java, or even JavaScript’s “method calling”, things start to become a lot easier. However, this is a pretty rigorous piece of documentation, as is not for the novice programmer. It assumes very much that you are a competent programming and doesn’t shy away from deep technical details. For those who can keep up, though, I think this is by far the best document for learning the language itself.
In my research online, I had also come across the Cocoa Fundamentals guide, which I read off and on while I was reading through Programming with Objective-C. This document explains Cocoa (and Cocoa Touch), Apple’s APIs for application development. It explains at a fairly high level what building blocks are available to you for developing your apps. It also talks a bit about the MVC pattern utilized by most Cocoa applications, as well as the general application lifecycle.
After graduating from these guides, I began stumbling across these more specific documents outlining particular APIs or topics on Apple’s developer site called Programming Guides. Simply put, these guides are AWESOME. They’re very thorough and walk you through the ins and outs of almost any topic you can think of.
I’ve been reading these guides the past few weeks, but have been putting my Google-fu to the test trying to find each and every one of these guides. I’ve got a respectable list started, but I feel like there are a few out there I haven’t included. Let me know if you find one!
Below this huge list of Apple docs, you’ll find a short list of other Apple programming sites and blogs I’ve been reading in order to soak up as much I can about these platforms. More adventures in Objective-C to follow in future articles.
Without further delay…
The Ultimate List of Apple Programming Guides #
Last Update: February 2, 2014
Getting Started #
- Cocoa Fundamentals
- App Programming and Design
- Start Developing iOS Apps Today
- Cocoa Core Competencies
iOS #
- iOS Human Interface Guidelines
- Application Development Workflow
- iOS 7 Transition Guide
- Accessibility
- View Controllers
- Table Views
- Collection Views
- Views
- Scroll Views
- Document-based Applications
- Text, Web, and Editing Support
- Events
OS X #
- OS X Human Interface Guidelines
- Application Development Workflow
- App Programming and Design
- Accessibility
- Views
- Table Views
- Scroll Views
- Document-based Applications
- Events
- App Sandbox
Multimedia & Location #
- Multimedia Programming
- Camera and Photo Library
- Location Awareness
- Multiple Displays
- iPod Library Access
- QTKit
- Audio Session
Core Foundation #
- Core Foundation Framework Reference
- Core Animation
- Core Graphics / Quartz2D
- Core Graphics Reference Collection
- Core Text
- Core Image
- OpenGL
- Core Data
Application Architecture #
- UIKit Framework Reference
- Application Kit Framework Reference
- Memory Management
- URL Loading
- Error Handling
- Exceptions
- Timers
- Threading
- Calendars and Reminders
- File System and iCloud
- Concurrency
- Printing
- Pasteboards
- Quick Look
- WebKit
- Archives and Serialization
- Strings
- Streams
- Local and Push Notifications
- CFNetwork
- Key-Value Observing
- Preferences and Settings
- Keychain Services
- iCloud Design Guide
- Framework Programming Guide
- Drawing and Printing
Xcode, Testing, Debugging, and Project Structure #
- Xcode User Guide
- Resources and Nib Files
- Bundles
- Instruments
- Cocoa Coding Guidelines
- Interface Builder Help
- Unit Testing
App Store and Distribution #
- App Distribution Guide
- In-App Purchases
- iTunes Connect
- Address Book
- iAd
- Passbook
- Game Center
- iOS Team Administration Guide (Dev Portal, Certificates, Provisioning, etc)
- Code Signing
Honorable Mentions #
NSHipster #
NSHipster is, as they put it, “a journal of the overlooked bits in Objective-C and Cocoa” and they offer a series of very well written, thorough articles on a lot of more obscure stuff you may encounter in your Apple programming adventures. The articles blend the perfect amount of technical content with a touch of humor which makes them very fun to read.
Cocoa Literature List #
The Cocoa Literature List has over 3500 categorized links to articles on Objective-C and Apple programming. You’ll find almost everything here; things like JSON, SQLite, and Bluetooth. The site includes a search and continues to be updated.