Today, i have just witnessed a new milestone in my career as a software developer, that of seeing my first app accepted into the Apple App Store. It’s a small uncomplicated app but from small acorns, mighty oaks grow!
Having learned Objective-C and familiarizing myself with the XCode developer tools over the last few months, i created a little app to familiarize myself with the process of design, development and distribution of iPhone software while conforming to Apple’s strict standards. I can honestly say i’ve thoroughly enjoyed myself meeting this challenge and also feel as though i’ve learned a great deal about mobile programming in general!
So what’s the big deal?
Well, i’m not a usual Apple fanboi but recently i’ve recognised that Apple have been getting everything right. The integration of all their hardware and software with iTunes, the consistent user friendliness of all of their products, consistent attention to detail and high standards of, …well, …everything. Acknowledging this and being so impressed with my iPhone and iPad, i decided to start learning to write my own applications for my devices.
Learning Objective-C was a harder than i first thought because of it’s very dynamic nature, lack of garbage collection for iOS and learning to use the Xcode IDE was very puzzling. Puzzling because a lot of boilerplate code is hidden from you and all code is written using MVC andDelegate design patterns. This in itself is enough to put off most developers but believe me, it gets even more complicated.
Every developer that wants to develop iOS applications, have to go through a ritual which certifies every step of the development process. Obviously this is controlled for consistency and high standards of craftsmanship but i understand when other developers scoff at the hoops you have to jump through to even test an app on your own device.
Here’s the ritual:
- Join Apple’s developer program by paying £59 annual membership fee.
- Authenticate and certificate your development environment and machine.
- Record and authenticate your hardware devices. iPhone, iPad, etc.
- Obtain a distribution certificate (free or commercial) for your app.
- Install necessary distribution certificate into Xcode.
- Test the app on your device.
- Generate a distribution build from Xcode, embedding the distribution certificate and compress the app.
- Register your app with iTunes for distribution. (Fill in tax, bank and contact details, etc)
- Generate and record a unique ID for your app.
- Grab screenshots and create a hires (512x512px) store logo.
- Submit to Apple for approval.
- Wait a week or so…
Hardcore eh? and i’m sure i’ve still forgotten something!
It’s that complicated that the Apple developer website has an interactive guide that holds your hand through the entire process. There’s also a 180 page PDF you can download to read about the details of the entire process. So i’m feeling lots of satisfaction at the minute, not due to the coding challenge of using advanced design patterns with Objective-C but due to getting an app accepted by Apple after being subjected to one of the most intensive and complicated development and approval processes i have ever encountered.
Simple! I loved every minute of the process and i’m starting a new app as we speak! Glutton for punishment? Probably, but the global iPhone app market is too temping to ignore.
It’s tough, but give it a go. Learn something new. Learn how to do mobile programming right!