Apple is making it easier than ever for beginners to get started with app development. Thanks to the company's Xcode 8 development environment, Swift programming language and tools like Metal, now is a great time to make iPhone apps and games for iPhone and iPad, and even Apple Watch games.
Coding your own app or game may seem like a monumental challenge, but it's not as difficult as you think. There is a huge range of resources out there that will help you on your way to becoming an app developer or an indie game developer.
There's a lot to be said for iPhone and iPad app development. Unlike when you're building a website, you get access to the full features of the iPhone and iPad, so can use their technology to your advantage. More importantly, you can charge money for games. Build a good app, and you could strike gold (or at least make a good living).
How to get started with app development
The following steps will enable you to get started with app development from the very beginning. If you've already got some app development knowledge, you can skip ahead to getting started in game development, or visit our articles on how to learn Swift online and our complete guide to Swift.
Sign up with Apple Developer Connection
The first thing you need to do is to head over to the Apple Developer Connection and click Member Center and Register. Registering as an Apple developer will give you access to support materials, and enable you to register iOS devices with Apple so they can run your test apps.
You can sign in with your own Apple ID (recommended if you're a single developer), or you can create an Apple ID just for the developer account (recommended if you are developing for a company).
You don't have to pay Apple to register as a developer. You can sign up and gain access to all the developer tools for the current retail version of iOS. The basic registration is fine for developing and testing an app, although you will need to sign up with Apple for membership (£69 per year) if you want to sell apps.
An Apple Developer Membership also gives you access to beta versions of software such as iOS 10 and Xcode 8.
Have a plan before you create your app or game
Before you dive into any app development, it's important to plan out the app. While there isn't any set way to build a plan for the app, here are some things you (and any other people involved) should put in writing:
- The goal. What is the app ultimately designed to do? Keep it as simple and to the point as possible, The Camera app takes photos, enables simple edits, and shares them. The Music app plays music from iTunes Match (or synced with iTunes). Write down a single sentence that describes what the app does.
- The Scope. Agree on all the features that the app is going to include. Beware of feature creep (putting in too many new ideas) as you go. Decide what features are in, and what are out, before you start.
- Theme and strategy. What are the app's theme and strategy going to be like? Is it a happy, friendly app, or a stark and efficient business tool? Decide on your marketing strategy, and ensure that the app style matches your strategy up front.
- Sketch out the interface. You need to sketch out each display and map out the interaction of each button.
- Gather assets. Apple provides a lot of stock buttons and icons (you should use these) but you will need logos, graphics and maybe audio assets.
Think about the technologies you need. Can you just get by on Xcode and the App Store? Or will the app need server and other technologies? You need to think this through first.
Here are some good documents on what you need to plan an app:
- Mozilla: Planning your app
- How to Plan a Mobile App Project
- Code Complete: A Practical Handbook of Software Construction
Coding your own app
If you're looking to move into app development then you may want to code your own app. How easy this is for you depends on your level of coding experience, but Apple lowered the barriers with iOS 8 and the Swift programming language back in 2014.
You create apps for iPhone and iPad using a Mac program called Xcode. Xcode is Apple's own IDE (Integrated Development Environment).
Here are some useful resources to check out:
Hiring an app developer
If you don't fancy yourself as a developer, then you can either hire (or team up with) a developer.
Hiring professional developers to build apps can be expensive (prices typically start from around £20k up). But if you have an interesting enough project it can be worth teaming up with a developer who wants to hone their skills.
It's worth using a site like Meetup to find where coders are meeting up in your area, and then heading over to say hello. You can also use a service like LinkedIn to find developers, although this is more useful if you have financial backing for your project.
Submitting your app to the App Store with iTunes Connect
Once your app is ready you can submit it to Apple via iTunes Connect. You sign up for iTunes Connect separately from the Apple Developer Membership.
Apple has this comprehensive guide to submitting apps.
Back in 2015 it used to take around a week to get an app approved, but this has fallen dramatically: Apple now claims that it will complete the process in 24 hours. It isn't yet clear how the company has achieved this streamlining, or whether Apple will be making fewer checks on submitted apps.
Nevertheless, it's worth noting that Apple often rejects apps for one reason or another. Typically because they use undocumented SDK features, or because of worries about nudity and pornography. There are some technical issues to watch out for though. The iMore blog has a good list of rejected apps and the reasons behind their rejections.
How to make a game for iPhone or iPad
We're talking specifically about iOS games development for the rest of this article, but many the courses and resources we're going to recommend will assume a certain degree of familiarity with app development in general.
Courses and training
The good news is that you're far from alone when it comes to wanting to learn video game development for iOS. Thankfully there is a range of courses available, all designed to help you learn the basics of video game development.
Here are some courses to check out.
One of the bestselling and highest rated iOS game development courses available on Udemy is this one, with more than 302 ratings that average out at just under five stars. There are almost 2,000 students enrolled at the time of writing, too.
This course comes with 18 hours of video, two articles, six supplemental resources and a certificate of completion, and there's a 30-day money-back guarantee available.
Another popular course is this one, which also has a high rating and more than 1,000 students enrolled. It features over eight hours of video, four articles and five summplemental resources, and like the previous course has a completion certificate and a money-back guarantee.
The final course we're going to recommend here is this one, which has just a small number of students enrolled because it's much newer, but does have an excellent rating and features more than 10 hours of video with 84 supplemental resources and one article.
iOS game development resources
Make sure you check out these resources when you start learning iOS game development.
SpriteBuilder. This is the best way to create sprites (characters) for your game. It's free and open source.
Apple Developer. Make sure you get the most from Apple's own developer website. Take the time to explore all the support available.
In particular, take a look at Game Center for Developers. There is a huge range of videos in the developer centre that focus on Game Centre, but touch on all aspects of game development.
GitHub. If you're not already part of GitHub then make yourself an account straightaway. Team up with other developers and find projects to work on collaboratively.
Game Development Stack Exchange. As a developer, you should be signed up to Stack Exchange as a matter of course, but be sure to spend time in its specific Game Development area. Here you'll be able to post questions and problems, and the community quickly rallies around to provide answers. Don't try to solve problems alone. Make sure you work with other developers.
For inspiration, take a look at these: