Becoming an iOS developer
Since it made it’s debut back in 2007, the iPhone has been the world’s most recognizable smartphone. In fact, I’d argue that it redefined smartphones. Not only did it usher in a new era of more capable (and user-friendly) mobile applications but it also brought with it, as Apple would have you believe, the world’s most advanced mobile operating system — iOS.
There’s an app for that
Between our iPhones and iPads, both large and small, many of us use iOS on a daily basis. If you’ve spent time in the app store you know that there’s an app for everything. Actually, I’d dial that back a bit and say that there’s an app for just about everything. Sometimes you come up short trying to find the perfect app for whatever it is your looking for. I firmly believe that if you want a thing and it doesn’t exist, create it yourself! I personally have made a couple of apps that I have no intention of releasing to the public, but serve me quite well in my day-to-day. How can you go about doing this yourself? Well, it’s actually not as hard as you might think.
Getting started is as easy as, well, getting started.
Your first steps
There are two things you must have. Some kind of Mac and a version of Xcode, preferably the latest. You might be able to get away with using a Hackintosh, but I don’t know anyone who has had a good experience doing so.
You have two officially supported language choices — I say “officially supported” because other solutions like PhoneGap and Xamarin exist — Objective-C and Swift. Since its 2.0 release Swift has been nothing but a joy to use. Apple has been pushing it really hard; however, while it certainly isn’t the prettiest and you’ll probably hate it, I think it’s still important to learn Objective-C. You don’t need to explore any of the more advanced features of the language, but you should, at least, be able to understand it and write in it if need be. One reason being the amount of legacy code out there that has not yet been rewritten in Swift. Apple has official documentation for Swift and Objective-C. I recommend at least reading over the Swift language guide before you start coding anything.
Apple has also created a wonderful guide for people new to iOS. It’s a tutorial that holds your hand the entire way from downloading Xcode to completing your first app. It was a godsend when I first started and it seems to have only improved with time. You can find it here.
Beyond the Basics
Apple’s official documentation is enough to get you started, but some of the cooler stuff exist outside of Apple’s walled garden. App development is multifaceted and it takes more than just knowing how to code in Swift to make a truly great app. Design, for one, is of growing importance. Here are a few resources I check on a daily/weekly basis:
While I haven’t read Meng To’s book, this particular section of his website has a ton of useful links to resources to everything related to app development. It’s well organized and is updated relatively often.
Trending Swift and Objective-C repo on Github
I found that another great way to learn is to read other people’s code and see exactly how they do what they do. GitHub allows you to explore some of the most popular repositories filtered by language. Atlantis’ Star Wars custom view-controller transition is a recent favorite of mine.
A lot of new and experienced iOS developers come here to discuss app development. The subreddit has a decent population of indie developers too.
iOS Dev Weekly
A curated list of some of the best iOS related articles posted during the week.
Little Bites of Cocoa
A simple yet genius idea I wish I’d thought of. The site, as its name suggests, provides little nuggets of Cocoa related knowledge. A lot these nuggets cover some rather obscure topics.
Even with all of these resources, the best way to learn anything (especially when it comes to coding) is to just start doing it. I found that some of the most important lessons you will learn will come through trial and error.
Have at it!