Skip to Main Content

I Want to Write iOS Apps. Where Do I Start?


Dear Lifehacker,
I have a little background in coding, but I'd like to make an iOS app. I'm just not sure where to get started or what tools I need. Where do I start?

Sincerely,
App Store Amateur

Dear ASA,
Learning to develop for iOS is kind of a two-pronged process. If you don't know how to code at all, you can find plenty of resources here. If you're versed in coding, you'll need to get familiar with Apple's development tools and their guidelines. Apple's known to restrict apps for all kinds of things, so it's good to know what you can and can't do before you start.

We're not going to walk you through the entire process of making an app, that's far too much information for this post. However, we will get you set up with the coding environment, point you to Apple's guidelines, and give you a few resources to help you learn Apple's different languages for iOS.

Xcode, Swift, and the iOS SDK

Apple's IDE (Integrated Development Environment) for both Mac and iOS apps is Xcode. It's free and you can download it from from Apple's site. Xcode is the graphical interface you'll use to write apps. Included with it is also everything you need to write code for iOS 8 with Apple's new Swift programming language. It's also only available for Mac, so if you plan on making iOS apps, you'll need to be running OS X.

While Apple's pushing Swift pretty hard these days, you can program iOS in any number of languages, including Objective-C. Which you decide to use it really up to you, but here are a few guides, classes, and tutorials to get you started:

  • Start Developing iOS Apps Today: This is Apple's official starting guide. It walks you through setting up Xcode, structuring your app, implementing everything, and submitting it to the App Store.

  • Introducing Swift: Apple's new programming language, Swift, is made specifically for iOS and Macs. It's supposedly much easier to work with and use, so if you're totally new to iOS development it's a good place to start. It works with and is similar to Objective-C (which you can also use if you prefer).

  • Apple's Development Videos: Apple includes a ton of videos from WWDC teaching you various parts of development. They're a great resource for learning industry tricks and getting to know the basic toolset you're working with.

  • Ray Wenderlich's Tutorials: If you want to make games, Ray Wenderlich's tutorials are a great place to start. He covers all kinds of thing beyond games too, so you're bound to learn something about Swift and Objective-C even if you'd prefer to make a productivity app.

  • Apple's API Capabilities: Apple has a ton of different APIs to access app extensions, Touch ID, Photos, HealthKit, and more. Familiarize yourself with these so you can integrate more advanced features into your app.

  • Code School's iOS App Development class: You can get a grasp on the basics of iOS development for free through Code School's intro classes.

  • Stanford's iOS Development Classes: Stanford has a set of free classes to learn iOS development. It's still only available for iOS 7, but most things you learn should transfer over nicely to iOS 8. Chances are they'll have an updated class for iOS 8 in the near future.

That should get you set up with your development tools and give you a good grasp on how things work on iOS.

Apple's App Store Review Guidelines

It's no secret that Apple's App Store Review Guidelines are incredibly specific. Apple has a very specific view of what apps they'll allow in the store, so it's useful to get to know their rules before you even try to make your app. If you don't, you might spend your time making something that Apple won't allow into the App Store.

When you finish your app, you'll submit it to the App Store and it'll be reviewed based on a content, design (more on that in the next section), and technical details. So, head to the Review Guidelines page and get to reading. Apple also has a list of the common reasons apps get rejected here. Typically, it's because of crashes, broken links, advertisements, or incomplete information. Apple's also known to block apps that include any type of adult or political content.

Likewise, many of Apple's APIs have their own set of review guidelines. So, if you're going to integrate your app with HealthKit or Apple Pay, it's good to get to know those as well. Here they are:

It's good to keep in mind that Apple tends to be very conservative with their app review process. Chances are, if you're making something even remotely risque, it will be rejected, so be mindful of that before you start making your app.

Apple's Design Guidelines

Beyond Apple's review guidelines, they also have a set of design and interface guidelines. Apple wants all the apps in their store to have some type of consistency, and while this doesn't have to mean good design, it does mean apps use the same basic UI elements.

To get a grasp on this, check out Apple's Human Interface Guidelines page. Here, you'll find the basics of what they're looking for in both apps and icon design. They also have a set of Do's and Don'ts that distill that massive guide down a little bit so it's easier to get started.

Thankfully, Apple doesn't leave you totally in the dark on how to make a well designed app. Here are a few resources to get help you design something worthwhile:

  • Designing Great Apps: Apple collected together some of the best talks from WWDC about design to help you get started with designing an interface.

  • Designing a User Interface: Apple put together a guide for designing interfaces in iOS 8 using the built-in tools of Xcode.

You can also find plenty of resources online to help improve your design chops, or check out our guide.

Register for GitHub and TestFlight

Unless you're some kind of super genius, you probably don't want to create your app in a bubble. Instead, it's good to get other people to look at your code and invite beta testers to try your app out.

GitHub is the go-to for software versioning and collaborative work. Once you register for GitHub, it's incredibly easy to link Xcode into it so everything you do is saved and accessible by other people on your team. If you need a little help setting up GitHub, their guides walk you through the process.

Likewise, beta testing is also incredibly easy in iOS 8. Using TestFlight, you can simply invite users to your team so they can test your app. They'll just need to download the TestFlight app.

Developing for iOS is really all about familiarizing yourself with Xcode. Once you're comfortable there, you can write your app in a wide variety of languages or take a stab at learning Swift. As you move along to actually writing that app, you'll certainly need to dig up answers to more specific questions, but the tools above will get you started on the right path.

Good luck,
Lifehacker