The Adjacent Possible

The Complete Beginner’s Guide to iPhone Development

Curious about iPhone development? Never taken a single computer science course in your life? I was both of those things when I started learning. I’ll be going over the things I did to learning iPhone development and a few I wish I had. We’ll first start with what the requirements are to begin iPhone Development.

Requirements

Macintosh

To write iPhone applications you’ll at least need access to a Mac operating system. I didn’t make the rules but this is a make or break condition. Apple has a special program called Xcode you need to make applications and it’s only run on Macs. I’ll discuss Xcode more farther down…

15-30 Minutes Daily (Minimum)

This is a bare minimum in my mind. A lot of people said learning to program was like learning a new language but they’re wrong. If I could compare notes to the first human integrated into an alien society I suspect they’d be similar. If you’ve never typed a line of code this 15-30 minutes will work for you but it’s the daily part you have to also commit to.

If both of the above are manageable I assure you that iPhone development is completely within your reach. Keep reading and I’ll show you where to start.

Xcode, Swift

Xcode will be your first step. This is where all the techy magic happens. Xcode is essentially your tool box as a developer. All of your code can is written, tested, and even simulated on a virtual iPhone from that application. It’s capable of a lot more but for our purposes you just need it to get started writing code.

(Optional) Join the Apple Development Program. This isn’t required until you’d like to distribute your application on the app store. It cost $99 to get signed up. With that you’ll get access to things like App Analytics and Beta Releases before the public.

One of the biggest questions I saw when I started programming was what language should I learn? I’ll be honest, I only considered Swift. Theres a few other options for programming for the iPhone such as objective-C and xamarin but I can’t pretend to tell you I know a lot about those. Swift is the newest addition to languages you can use and I’d strongly recommend it for a first language. I can tell you all day why or why not to choose Swift but it boils down to the fact it’s easy to read. For new programmers the most important part is learning concepts and paradigms. If you wanna write iPhone programs then Swift is what you need.

First Things First

Before diving into your first “var x = “Hello World!” project I’ve got a few side notes for you to consider. My biggest challenge as a programmer wasn’t learning the syntax of Swift or learning to use Xcode. The challenge was learning what phrases like “Object Orientated Programming”, “Model View Controller”, “Value Passing”, “Referencing Passing” and “Protocol” meant. These are all familiar concepts for programmers and computer science majors. But if you wanna avoid some confusion I’d recommend reading Ray Wenderlichs article Intro to Object-Oriented Programming. With Xcode downloaded you can follow that article and avoid some confusion later.

If you get through the article and still don’t feel a firm grasp of the topic don’t worry. It took me almost a year of self-learning to really get ahold of some of the more complicated topics associated with programming for iOS. The more you program you’ll run into gaps in your knowledge and that’s when you should solidify those understandings.

Alternatively if that article is too dense or you’ve finished it I’d jump into Ray’s Swift Tutorials. I spent a lot of time here starting out and it was a great resource for me.

Designing for IOS

After you’ve become familiar with the language you’ll need to begin designing your user interface. Apples Design Guidelines will give you all the information you could need about designing your first app. There’s plenty of resources and opinions out there but ultimately Apple will end up reviewing your app before submission and meeting these standards will help ensure its approved.

An of course you’ll need a program to make your custom elements. I’m not here to sell you one program but I’ll tell you I do use Sketch 3. The program is very easy to use and well supported by the developers. Since Apple now has a line of iPhones with varying screen sizes it made designing a bit more complicated. With Sketch all the headache is removed with a few clicks so you don’t have to worry about scaling things for every screen size manually. If you wanna know more about the programs I use I have those outlined in another post whatchamacallits.

GitHub and Stackoverflow

GitHub and stackoverflow are two resources you’ll learn to rely on heavily as a new developer. GitHub is an amazing community of developers that share and collaborate code. If the internet was around when the first caveman made fire he would’ve used GitHub to share his discovery. You’ll be able to use it to see ways that other developers made apps and most people freely let people use their code anyway they want. Stackoverflow has almost every question and problem you’ll have when you begin programming. Most of those questions will also have really good answers too so any error messages you get programming just copy and paste into stackoverflow. Avoid some headaches and go ahead and bookmark both of those sites.

Get Connected

With all of this said I have one more significant piece of advice. The iOS community is massive! You may not live in a tech hub like San Francisco or New York but it’s easy to keep up with the latest. Your investment into staying connected with other developers will have great returns. Listen to podcast like Release Notes and Immutable to stay on top of changes going on with developers. If you’ve got the time I’d also recommend blogs like Natasha The Robot and Ray Wenderlich has an amazing group of developers coming out with new articles daily about programming.

Go and Do

At the end of the day my best time spent learning was actually building apps. Don’t just copy and paste others code. Understand it and try to build it yourself. Theres no reason to read every article about the ins and outs of Swift or iOS development before you get started. If you have Xcode downloaded I’d open it up and get started writing ASAP. If you’re a first time programmer I challenge you to write your first program and email it to me. I’m happy to help out anyway I can because not very long ago I was starting out too.