I was working on an article for Jim Dalrymple (@jdalrymple) and Loop Magazine (http://appstore.com/TheLoopMagazine). The topic? Getting started with Mac and iOS development.
I went looking for a reasonably recently updated list of dev resources to link to from the article. Couldn’t find one I was happy with, then remembered that we included a pretty solid list at the end of the book Beginning iOS 6 Development. Since that list needed to be updated for the iOS 7 rev of the book, I thought, why not pop the list into a blog post. And here we are.
At its core, programming is about problem solving and figuring things out. It’s fun, and it’s rewarding. But, at times, you will run up against a puzzle that just seems insurmountable—a problem that appears to have no solution. In those situations, it’s good to have friends in high places. This post outlines some resources you can turn to when you’re in a bind.
I also posted a separate list of dev tools right here and a another post listing training resources right here.
Of course, please do follow me on Twitter (@davemark). As you make your way through this list, please let me know if I’ve missed any important, active Cocoa or Cocoa Touch resources or if any of these links are bad or no longer in use. Enjoy!
Become one with Xcode’s documentation browser, grasshopper. The documentation browser is a front end to a wealth of incredibly valuable sample source code, concept guides, API references, video tutorials, and a whole lot more.
If you are just getting started with Mac or iOS development, here are a few places I would look through, some excellent foundational material.
Building for iOS: A terrific introduction to the process of building an iOS application.
Building for Mac OS X: This tutorial takes you on a tour of the Mac OS X development process.
Objective-C: This is the official Apple Objective-C documentation. If you are new to development, you might want to read a book for beginners before you dig into this documentation. But definitely dig into this documentation at some point. It is very well written and contains some very important detail that will complement any beginner book you read.
Xcode: This is Apple’s official Xcode user’s guide. There’s a lot to dig into here, so you might start by clicking around the document, just to get an idea of what areas are covered so you can make your way back as you dig into Xcode.
You might want to sign up for these handy mailing lists:
Cocoa-dev: This moderately high-volume list, run by Apple, is primarily about Cocoa for Mac OS X. Because of the common heritage shared by Cocoa and Cocoa Touch, however, many of the people on this list may be able to help you with iOS questions as well. (Do make sure to search the list archives before asking your question.)
Xcode-users: Another list maintained by Apple, this one is specific to questions and problems related to Xcode.
Quartz-dev: This is an Apple-maintained mailing list for discussion of the Quartz 2D and Core Graphics technologies.
IPhone SDK Development: Another third-party list, this one is focused entirely on iOS development. You’ll find a medium-sized community here, with a nice cast of regulars.
If you are at all a fan of Internet Relay Chat, you no doubt know all about http://freenode.net. If you are new to IRC, start by reading the FAQ. Once you register an IRC nickname, you’ll want to join a channel. Before you get started, be sure you’ve read the FAQ (did I mention the FAQ yet?) and you should also take a moment to read Mike Ash’s most excellent Getting Answers blog post. Here’s a starter channel list:
#macdev: Founded on the EFNet IRC network around 1993, #macdev is one of the oldest IRC channels dedicated to Mac-related development.
#iphonedev: Another IRC channel, this one dedicated to iOS Development.
#coreaudio: And another channel for development using Core Audio.
These discussion forums allow you to post your questions to a wide range of forum readers:
Learn Cocoa Forum: This is the official forum for books like Learn Cocoa on the Mac and Beginning iOS Development. It features an active, vibrant community with both beginners and experienced developers.
Cocoa Cafe, France: This is a French Cocoa discussion forum. In French.
Apple Developer Forums: This is a web forum set up by Apple specifically for discussing iOS and Mac software development. Many iOS programmers, both new and experienced (including Apple engineers and evangelists), contribute to these forums. It’s also the only place where you can legally discuss issues with prerelease versions of the SDK that are under nondisclosure agreements. You’ll need to sign in with your Apple ID to access these forums.
Apple Discussions, Developer Forums: This link connects you to Apple’s community forums for Mac and iOS software developers:
Apple Discussions, iPhone: This link connects to Apple’s community forums for discussing the iPhone:
Visit these web sites for helpful coding advice:
CocoaHeads: This is the site of a group dedicated to peer support and promotion of Cocoa. It focuses on local groups with regular meetings where Cocoa developers can get together, help each other out, and even socialize a bit. There’s nothing better than knowing a real person who can assist you, so if there’s a CocoaHeads group in your area, check it out. If there’s not, why not start one?
CocoaHeads.tv: This is a collection of videos from some CocoaHeads groups.
NSCoder Night: NSCoder Nights are weekly, organized meetings where Cocoa programmers get together to code and socialize. Like CocoaHeads meetings, NSCoder Nights are independently organized local events.
Seattle Xcoders: Seattle Xcoders are an alternative to CocoaHeads and NSCoder Night for folks who live in or near Seattle. Two meetings a month alternate between west side (Seattle) and east side (usually Redmond).
Stack Overflow: This is a community Q&A site targeted at programmers. Many experienced iOS programmers hang out here and answer questions.
Apart from accessing the main site, you may also want to use tags to browse topics relevant to iOS developers:
Objective-C Stack: Twitter user with a fee of questions from StackOverflow.
MacForge: MacForge is a web site dedicated to Mac-specific open source projects brought to you by the folks who created MacTech Magazine. A brilliant resource.
iDeveloper TV: This is a great resource for in-depth video training in iOS and Mac development, for a price. It also contains some nice, free video content, mostly from NSConference (listed in the “Conferences” section of this chapter), which is run by the same people behind iDeveloper TV.
Cocoa Controls: Here, you’ll find a huge range of GUI components for both iOS and Mac OS X. Most of them are free and open source. These controls can be useful as is or as examples for further learning.
NSHipster: This site’s slogan says it all: It’s “a journal of the overlooked bits in Objective-C and Cocoa.” You can learn about a whole slew of underused pieces of our favorite frameworks here.
iOS Fonts: Love this site. A detailed list of fonts available on iOS, organized by iOS release number. So good!
If you still haven’t found a solution to your coding dilemma, you might want to read these blogs:
Matt Gemmell’s blog: Matt has a lot of experience and a lot of strong opinions about development in Objective-C. We think these opinions are usually right, and always worth paying attention to.
Cocoa is my Girlfriend: This is a group blog, spearheaded by Marcus Zarra, focusing on iOS and Cocoa development issues. These guys cover a wide range of topics useful to everyone working in this corner of the field.
Ray Wenderlich’s blog: Ray’s site has expanded so much it can hardly be described as a blog at all anymore, but we’re putting it here anyway! This is a fantastic resource for iOS developers, full of tutorials on a wide range of topics. Much of this content is directed toward game developers, but there’s really something for everyone here.
Wolf Rentzsch’s blog: Wolf is an experienced, independent Cocoa programmer and the founder of the (now defunct) C4 independent developers’ conference.
iDevBlogADay: This is a multiauthor blog, whose authorship rotates daily among several indie developers of iOS and Mac software. Follow this blog, and you’ll be exposed to new insights from different developers every day.
Wil Shipley’s blog: Wil is one of the most experienced Objective-C programmers on the planet. His Pimp My Code series of blog postings should be required reading for any Objective-C programmer.
Jeff LaMarche’s blog: Jeff is one of the founders of MartianCraft, founder and co-author of the Beginning iOS Development book series, and one of the most knowledgable developers I’ve ever had the pleasure to know. Read anything he writes.
@ObjectiveC on Twitter: The @objectivec Twitter user posts about new Cocoa-related blog posts. It’s worth a follow.
Mike Ash’s blog: Mike is “just this guy, you know?” This RSS feed presents Mike’s collection of his ongoing iOS Friday Q&A.
Joe Conway’s blog: Joe was a long time part of Big Nerd Ranch and his blog is chock full of useful iOS/Cocoa code and tips. BTW, Joe, I like your WordPress theme. Very clean.
objc.io: This newsletter was founded in Berlin by Chris Eidhof, Daniel Eggert, and Florian Kugler. It’s new (as of this writing), so it’ll be interesting to see where it goes.
iOS Developer Tips: John Muchow started the blog back in 2008 when the iPhone was first announced. It was one of the first blogs dedicated to developers writing applications for the iPhone. A fantastic resource, one of my new favorite reads.
Gregory Hill’s Blog: iOS Dev Gregory Hill created a series of iOS dev posts, most recently on the localization process. Keep ‘em coming, Greg!
iOS Dev Weekly: This newsletter, put together by Dave Verwer, comes to your email inbox once-per-week. Full of useful links.
Developer Podcasts and Screencasts
Thanks very much to Kirschen Seah for starting this list of developer podcasts. Got any more? Add a comment, I’ll fold it into the list.
Sometimes, books and web sites aren’t enough. Attending an iOS-focused conference can be a great way to get new insights and meet other developers. Fortunately, this is an area that has really boomed over the past few years, and iOS developers have no shortage of interesting conferences to attend. Here are a few:
WWDC: Apple’s World Wide Developer Conference is the annual event where Apple typically unleashes the next great new things for its developer community.
MacTech: This is a conference for Mac and iOS programmers and IT professionals. It’s hosted by the same people who publish MacTech Magazine.
NSConference: This multiple-continent event has been held in both the United Kingdom and United States, so far. It’s run and promoted by Steve “Scotty” Scott, perhaps the hardest working man in the Mac/iOS conference scene.
360 iDev: This approximately once-a-year conference, which is hosted in either San Jose or Denver (flipping between the two year after year), began in 2009.
Çingleton: So far, there have been two instances of the Çingleton Symposium, so it’s not a singleton any more. But it is a great conference that attendees rave about.
CocoaConf: No one else seems to be operating as many iOS developer events in so many different cities as CocoaConf.
Lanyrd iOS Conference List: Last but certainly not least, Lanyrd.com maintains a list of iOS conferences. Take a look!