Apple is making it easier than ever to build iOS apps and games for iPhone and iPad, and even Apple Watch games. Thanks to the company's Xcode 7 development environment, Swift programming language and tools like Metal, now is a great time to get started with iOS app and game development.
Coding your own app or game may seem like a monumental challenge, but it's not as difficult as you think. There are 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, and Apple opened up even more of the iPhone and iPad to developers in iOS 8 and iOS 9. More importantly, you can charge money for games. Build a good app, and you could strike gold (or at least make a good living).
Don't miss: Black Friday Tech Deals 2016
How to make an iPhone app: Get started in 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.
How to make an iPhone app: 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. Apple Developer Membership also give you access to beta versions of software such as iOS 9 and Xcode 7.
Read next: How to sell your app on the App Store
How to make an iPhone app: 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
How to make an iPhone app: 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:
There are also some great online videos from universities like Stanford, MIT and Harvard. Check out Stanford's Developing iOS 9 apps with Swift course in iTunes U. Watching these is a great way to get an overview of general development
How to make an iPhone app: 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. There's some good advice on Mashable for hiring a lead developer.
Once you 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: first steps
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.
How to make a game for iPhone or iPad: 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 are a range of courses available, all designed to help you learn the basics of video game development.
Here are some courses to check out.
This Udemy course takes you through the process of building a simple iOS game. Although the course is a bit old, it's a great way to learn Sprite Kit (this is the tool used to create flat 2D games).
If you want to create 3D games then Unity is a great development environment. It's cross-platform, so the techniques you learn can apply just as easily to Android games as iOS games. This is one of the most highly rated video game developer courses on the market
This course is great for learning how to build effective games. It takes Pac Man as its inspiration, but leads you through building a maze game with physics.
Read next: How to set up and learn Python coding on Mac
How to make a game for iPhone or iPad: 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.