This article first appeared in issue 226 of .net magazine – the world's best-selling magazine for web designers and developers.
It sometimes seems everyone has an idea for an iPhone or iPad app, be it a game, a booklet, a coffee app… But as much as people would love to make their dream a reality, many can’t because they simply have no idea how to get the process underway. The world of iOS development can be daunting and somewhat overwhelming, even to the seasoned developer.
The purpose of this article is to make it slightly less intimidating and aims to point the budding iPhone and/or iPad developer in the right direction. So if you want to get an app from a bundle inside your head to a working piece of software in the App Store, keep reading!
The very first thing you have to do if you’re planning on doing any iOS application development is to register with Apple as a developer. By doing so you get access to the relevant software development kit (Xcode and Tools) in addition to a range of technical documents that will become your best friends as you progress along the path of your app development career – and also a shed-load of sample code that you’re allowed to use in your app, courtesy of Apple.
To register as a developer simply go to developer.apple.com/ios and select Register in the top-right hand corner. You’ll then be taken to a page in which you get an overview of the developer programs; once you’re happy with this, select the Get Started button.
Now, you’ll have to log in with your Apple ID (your iTunes/iCloud account) or create a new Apple ID. This will be linked to your developer account – and will also be what you use to actually log in to the iOS Dev Center (the place where you download the SDK and also access sample and technical documents and code).
Once you’ve selected whether you have an existing Apple ID or want to create a new one, follow the instructions to either sign in or sign up and then continue with the enrolment.
Generally, if you’re just going to be making apps for yourself and don’t operate as a company, then your developer account type should be an ‘Individual’ but if you’re operating as a company then you’re obviously going to have to register as a ‘Company’ with Apple.
If you’re registering this way then you’ll need to provide Apple with documents that prove you’re actually a company (for example, a Certificate of Incorporation).
Once you’ve entered the developer program, the next step is to set up both a personal and professional profile. With the personal profile, you simply enter your contact details, whereas with the professional profile, you provide additional information such as who your primary market is and what apps you’re going to develop (don’t worry – if you change your mind, you can alter your professional profile at any time).
Once you’ve completed all the steps of the enrolment process, you’ll then need to download the latest version of the iOS SDK and install it on your machine (which, at the time of writing, is Xcode 4.2.1).
You also have the option of downloading it via the Mac App Store; in order to do this just search for Xcode and then download the installer. However, many developers find it preferable to simply go through the iOS Dev Center.
Speaking the language
Okay, so you’ve installed the latest version of the iOS SDK and you’re officially on your way to start developing and designing apps for iPhones, iPod Touches and iPads. But before you do that, it might be helpful to know the exact programming languages and knowledge that’s required prior to firing up Xcode and attempting to develop an app.
To get started, you’re going to need to have a working knowledge of Objective-C. This is the language that’s used by most iOS developers to access the Cocoa Touch (API for building iOS device software) frameworks.
Now obviously it takes books to master Objective-C – and then many other books to get to grips with Cocoa Touch – so it would be highly impractical to even attempt to teach you within the confines of this one tutorial. I can, however, point you in the direction of the resources I found invaluable when learning to develop apps for iOS.
Over the years, I’ve invested a lot of money in a variety of books and, the majority of the time, I haven’t finished them because I didn’t like the way the book was written or the style the author adopted in order to teach iOS development.
So below is a list of books that don’t go into unnecessary detail about things you, for the most part, won’t need. These are all books that I’ve used in the past and still cherish to this day:
- The C Programming Language by Brian W. Kernigham and Dennis M. Ritchie. This is the best programming book that I’ve ever encountered; both authors write in such a way that everything is clear and elegantly presented, and reading it is a joy. That said, be aware that the C programming language is not the same as Objective-C; the latter is a subset of the former. So an extensive knowledge of C isn’t necessary for iOS developers. However, the core morals and values of C apply in Objective-C and you need to have a basic understanding of it. In other words, reading this book cover to cover absolutely won’t do you any harm.
- Programming in Objective-C by Stephen Kochan. Another book that was essential, and still is as a reference, is Programming in Objective-C, third edition. This book will take you through all that you need to know about Objective-C: it starts off with the basics of C (which I recommend you read to recap anything you may have forgotten) and then builds your knowledge of Objective-C until, towards the end, it briefly introduces Cocoa.
- Programming iOS 4 by Matt Neuburg. This is the final book I’d recommend to the budding developer. It teaches you virtually everything you need to know about Cocoa Touch as well as working with iOS and the SDK, and how to utilise Cocoa fully.
After reading all of these books and having them to hand for reference, you’ll find yourself building applications that become more complex each time you fire up Xcode. But the key is not to approach C, Objective-C or Cocoa as something you can get to grips with in an evening or in a weekend.
Time and dedication
Learning to make iOS applications takes time and dedication. That’s why so many people in possession of inspirational ideas don’t actually go ahead and create their app – meaning, unfortunately, that ideas remain just ideas. But with dedication and determination an idea can be turned into a functioning, real-world application and provide you with an amazing feeling of accomplishment and achievement. As well as reading books, you can, unsurprisingly, gain an invaluable amount of knowledge from resources on the internet; more specifically, the iOS Dev Center by Apple.
This is where you have access to Apple’s sample code, technical videos, guides, getting started documents, references and the developer forums (these require paid enrolment).
As a developer, you should have the Dev Center in your bookmarks – and rejoice at the fact you can access it whenever you want. In the meantime, here are some other great resources:
- Object-Oriented Programming with Objective-C
- The Objective-C Programming Language
- Cocoa Fundamentals
- HelloWorld Sample Code
To test out your application on an actual device, submit apps to the App Store and access the Developer Forums, you need a paid developer account, which costs $99 (£59). I would recommend signing up once you’ve acquired a basic knowledge of iOS development: you’ll find that it’s the best $99 you ever spent.
It also gives you access to iTunes Connect as well as the iOS Provisioning Portal and a handful of fun, new little features that you can explore. You can even get your hands on beta versions of iOS before they’re released to the public.
The iOS Provisioning Portal is where you get to set which devices your apps will run on, as well as creating development profiles. For example, if you developed an application and had a team of 10 testers, you’d need to collect the UDID numbers of their devices and add them to the Provisioning Portal so your app will run on their devices, and their devices only. Every year, you get 100 slots for devices (which is an annoyance); however, you only need to add a device once.
iTunes Connect is the place where iOS developers look after apps, create new ones and edit the information associated with them, such as descriptions and metadata. In addition to this you can do things such as request promo codes for existing apps and publish updates. And importantly, you can view any earnings associated with your apps via iTunes Connect.
Another crucial area of iOS development centres on designing the interfaces for your apps. The method by which a user interacts with an app understandably has a profound effect on how consumers view your application – and getting the design right can mean the difference between success and failure.
Generally, the standard Cocoa elements of an app aren’t enough to build a piece of software that provides a genuinely distinctive customer experience. It’s likely that you will, at some point, have to look at designing custom interface elements to create a product that stands out from the crowd in order to deliver that perfect application.
For the most part, developers and designers rely on Photoshop to create custom interfaces and, as much I’d like to say differently, Adobe’s product usually is the best option. To learn more about custom interface design to highlight best practices, I can again point you in the direction of some resources that I’ve found invaluable:
- Design Then Code by Mike Rundle
- Tapworthy: Designing Great iPhone Apps by Josh Clark
- iPhone User Interface Design Projects by Dave Mark, David Barnard and Joachim Bondo
As well as these books, there are countless tutorials and articles online that will help you with anything you could want to find out about Photoshop. Just like iOS app development, learning to use Photoshop takes time but, like most things, putting in the effort will be worthwhile in the end.
The aim of this brief guide was to point you in the direction of getting started with creating iOS apps. Of course no single article will be able to get you to the absolute point you want to get to, because every developer sets out with a different view of what they want to develop. But remember, creating apps is something that’s truly a rewarding experience and is something that you should go the extra mile with. Stay focused on making users smile.
Also check out Designing for touch and User interface design for iPhone apps