It seems everyone has an idea for an app, be it a game, a booklet, a coffee app – the world isn’t short on people who have an idea for an iPhone or iPad app but simply have no idea where to start. As much as they’d love to make their idea a reality, they can’t because they simply have no idea where to get started. The world of iOS development, even to the seasoned developer, can be daunting and somewhat overwhelming and the purpose of this article is to introduce the reader in a less intimidating way.
First things first, this article assumes you have no knowledge of how to become and iPhone or iPad developer and assumes you also have no programming knowledge (though some programming knowledge would be a bonus) – if you fall into that somewhat vague criteria and want to get an app from a bundle inside your head to working app on the App Store, this article is indeed for you!
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 registering as a developer, you get access to the software development kit (Xcode and Tools) as well as a whole range of technical documents that will become your best friend throughout your development career. You will also get a shed-load of sample code that you’re allowed to use in your app, courtesy of Apple.
To register as a developer, go to Apple’s iOS Developer site and select ‘Register’ in the top-right hand corner. You’ll be taken to an overview of the developer programs. Once you’ve digested 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 is the account that 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 as a company then you have 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, you need to set both a personal and professional profile. With the personal profile, you simply enter your contact details and with the professional profile, you enter details such as who is your primary market, what apps you’re going to develop (don’t worry, if you change your mind, you can alter your professional profile at any time).
You now need to download the latest version of the iOS SDK and install it on your machine (which, at the time of writing this is Xcode 4.3.2). You can also download it via the Mac App Store, however, many developers find it preferable to download it via the iOS Dev Center.
With this installed, you’re officially on your way to start developing and designing apps for iPhones, iPod Touches and iPads. Before one does that, it would be helpful to know the programming languages and knowledge that’s required prior to firing up Xcode and attempting to develop an app freestyle!
To get started, you’re going to need to have a working knowledge of Objective-C. Objective-C is the language that is used by most iOS developers to access the Cocoa Touch frameworks. Obviously, it takes books to master Objective-C and then many other books to master Cocoa Touch, so it would be impractical to even attempt to teach you Objective-C, C and Cocoa within this one tutorial. I can point you in the direction of the resources I found invaluable when learning to develop apps for iOS.
Over the years, I have invested a lot of money in books and, the majority of the time, I haven’t finished the book because I didn’t like the way it was written or the style used to teach iOS development. Below is a list is of books that don’t go into unnecessary detail about things you won’t need, and that I have used in the past and cherish to this day:
The C Programming Language by Brian W. Kernigham and Dennis M. Ritchie
This book is the best programming book ever written! Both authors write the book in such a fashion that everything is clear and elegantly presented. Reading it is a joy. Obviously, this book is on the C programming language and although an extensive knowledge of C is not required for iOS development, a basic understanding of C is. Objective-C is a superset of C, which means the core values of C apply in Objective-C and are vital for you to understand.
Programming in Objective-C by Stephen Kochan
Another book that was essential, and still serves as a reference, is Programming in Objective-C, 3rd Edition. This book will teach you everything you need to know about Objective-C and it starts off with the basics of C (which I recommend you read to recap anything you may have forgotten between books). It then builds on your knowledge of Objective-C and introduces Cocoa towards the end.
Programming iOS 4 by Matt Neuburg
This book is the final book I’d recommend to the budding developer. It teaches you literally everything you need to know about Cocoa Touch as well as working with iOS and the SDK, and teaches you how to utilise Cocoa fully.
After reading all of those books and having them to hand as a handy 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 learn in an evening or in a weekend. Learning how to make iOS apps does take time and dedication and that’s why so many people just have ideas and don’t actually go ahead and create their app.
Unfortunately, ideas often remain ideas but with dedication and determination, you can turn an idea into a functioning, real-life application which provides an amazing feeling of accomplishment and achievement.
You can also gain an invaluable amount of knowledge from resources on the Internet, and more specifically, the iOS Dev Center. This is where you have access to Apple’s sample code, technical videos, guides, getting started documents, references and the developer forums (requires paid enrolment). As a developer, you should have the Dev Center bookmarked and rejoice at the fact you can access it whenever you want. Some resources that you should take a look at in particular are below:
- Object-Oriented Programming with Objective-C
- The Objective-C Programming Language
- Cocoa Fundamentals
- HelloWorld Sample Code
Above are just a few guides that I recommend you read through and bookmark for future reference.
Most developers are also going to want to test their applications on their device, submit apps to the App Store and access the Developer Forums. To do this, you need a paid developer account. With a paid developer account, you can do a whole bunch of vital and interesting things, such as testing an app you’ve built on your iOS device and submitting your applications to the App Store. You’ll even get beta versions of iOS before they’re released to the public.
The paid developer program costs $ 99 per year (£59) but is absolutely essential if you’re to get any applications published. I would recommend signing up for the paid program when you have a basic knowledge of iOS development as it’s not necessary when you’re first starting out. Once you’ve come to grips with the basics, you’ll find that it’s the best $ 99 you ever spent.
You’ll then have access to iTunes Connect as well as the iOS Provisioning Portal and a handful of fun, new features that you can explore.
The iOS Provisioning Portal is where you actually set which devices your apps will run on as well as create development profiles. For example, if you developed an application and had a team of ten testers, you’d need to collect their device’s UDID numbers and add them to the Provisioning Portal. Only then can your app run on their devices, and their devices only — every year, you get 100 device slots (which is an annoyance) but you only need to add a device once.
iTunes Connect is where you manage your apps on the App Store. iTunes Connect is the place where you look after your apps, create new apps and edit the information associated with your apps. Not only this, but you can also do things like request promo codes for existing apps and publish updates.
Another huge area of iOS development is actually designing the interface of your apps. Getting the interface and interaction design right is very important. Generally, the standard Cocoa elements aren’t enough to build a truly amazing app and you will, at some point, have to design custom interface elements. Generally, developers and designers use Photoshop to create custom interfaces and, as much I’d like to say differently, Photoshop is really the go-to option. This guide simply cannot go into the world of custom interface design and highlight best practices, however, I can point you in the direction of some resources that I have 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
There are countless tutorials and articles online that’ll help you with anything you could want to know in Photoshop. Learning to use Photoshop takes time but, like most things that do, will be worth it in the end.
Creating apps is something that is truly a rewarding experience, and gives you the opportunity to go the extra mile and make users happy and smile. Happy developing!