Making Apps: Redux – part 4 (iPhone Apps)

This is part 4 of my three-part series, Making Apps.  Redux, because it sounds good.  Revisit is possibly more accurate and at least I didn’t have to look up what it meant.

In the series, I tried to explain the possibilities in making apps for yourself.  I didn’t go into much technical detail, mainly because that would take about a book’s worth of text.  Funnily enough, quite a few people have done that already.  I mainly talked about Android apps, because that’s what I know.  The massive issue with developing Apple iOS apps is that you need access to a Mac.

Why a Mac?

Apple's logo

The preferred iOS creation software is XCode, which only runs on Mac and the security requirements of creating and saving development and distribution certificates are really only possible on a Mac.  Finally, uploading apps to the App Store for approval can also only be accomplished via Mac.  In short, you need a Mac and the length of time you will spend on one, even if you build apps the way I have done, means you can’t just borrow your friend’s Mac Book for an hour.

Getting started

In my case, having been a PC-user for the longest time, since one disappointing 6-month period back in 1999, I wasn’t about to swap my Windows 7 laptop for a Mac Book.  I also wasn’t about to advise purchasing a new computer just because it would be kinda cool to make iPhone apps.

At the time of writing, I have just submitted my first app to iTunes Connect and it’s sitting there awaiting approval (see: update).  I built this app in  Adobe Flash Professional CS5.  I say built, but really it was a case of copy-and-pasting the frames from the existing Android App.  Flash’s iOS template took care of the rest, although I am getting ahead of myself.

Firstly, I had to apply for an iOS Developer account – $99 per year.

iOS Development Centre

$99 just to be able to log in

Next, we had to wait for Apple to contact the school to verify our existence and the fact we wanted to make apps – 6 weeks.

At this point last summer, we discovered the Mac requirements, so everything went on hold.  Then I wrote the blog entries about making Android apps, which got me thinking:  If Flash CS5 is allowed to publish iOS apps and all I need is the certificate to do so, how hard can this be?  All I really needed is access to a Mac…

The school had dabbled with Macs and we had a room of them not networked (they don’t play well with Windows servers).  I suggested that I take one of the Mac Minis home, allow it to use my Wi-Fi and see how easy it is to create the certificates that way.

Certifiable

There’s easy, straightforward and then there’s bodge upon bodge!  Many, many hours and countless forums later, I managed to create a P12 Development Certificate and Mobileprovision file and was able to publish the app using Flash and install it on my iPod Touch.

In order to create these certificates, you have to fill in a form on the iOS Development website.  Then you download the certificate file.  Then you import this certificate into Keychain Assistant.  Then you request something else from the Certificate Authority.  Then you download the mobile provisioning certificate.   Making sure at each step you enter the correct password, delete all old versions and have all the preferences checked.   I would like to talk you through each stage clearly, but it is so confusing that I can’t remember exactly what I did and no doubt will struggle to repeat the procedure correctly myself.

Once all of that is done, you hit publish and produce a development app for your personal device.  There is something very rewarding about making an app and seeing it on your device.  Something about it being made tangible.

Submitting to the App Store

Once you’ve tested your app – i.e., it doesn’t brick your iPod.  You can think about distributing it.  I’m not 100% sure Apple wants you to distribute apps, as their website which has been quite clear to up this point gets a little hazy.   Basically, look for iTunes Connect.  It’s sort of outside the iOS Development area.

iTunes Connect

Not to be confused with iTunes U, iTunes or Facetime

On this website, you fill out several pages, upload images and descriptions.  You will be asked for an SKU number, which turns out to be your own reference number for your app and you’ll also be asked for a lot of other things to.  Google will become your best friend here.

Once you have completed the forms to the best of your ability, you will need to generate Distribution certificates.  That crying you can hear was my spending another good few hours repeating certificate stuff again!

Once you’ve generated and published your app from Flash (or maybe your were daring and went straight to XCode) you will need to upload your .ipa file using Application Loader.  This handy little program is now bundled with XCode.   In order to install XCode you need to be running Snow Leopard.  In my case, that meant buying the upgrade DVD and waiting two weeks for delivery.

When you have upgraded, downloaded the upgrades to the upgrade, you are finally allowed to download XCode for Snow Leopard.   Once installed, you can close XCode and use Finder to locate the standalone Application Loader.

Application Loader icon

Application Loader aka "I had to download 1.5 Gb of XCode just to get this!"

Do you get the impression I think this entire process has been overly convoluted?

In conclusion

When I tell others of my experiences, I have found that iPhone, iPad and iPod Touch users view these steps with reassurance.  Each one said “It’s good to know they take the security seriously”.

And of course, Android devotees take my story as proof at how limited and controlling Apple is.

I think there’s truth in both views.  The hoop-jumping required to produce a final certificate is crazy.  Surely once you have logged into your Apple account and created a certificate there, what additional stages are needed?   It’s completely opposite to the self-signed certificate you create for Android.  Not to mention creating separate development and distribution certificates.

In terms of actually building and development, I still prefer Adobe AIR for Android.  Little features like being able to connect to your device and overwrite the app inside Flash make it a little easier to work in.   For iOS, you use iTunes to install/replace the app.

Ultimately the iPhone and iPad are massively prevalent and a lot of teachers have one or both.  I’m pleased that I’ve been able to produce an app for Apple devices and particularly pleased that the Adobe AS3 coding was able to be used without alteration for iOS.  I’m assuming that getting development and distribution certificates will become smoother as I do it more often.

Apple vs Android

I wanted an Apple vs Android image, but they are all quite mean really (read: funny) and didn't want to appear one-side.

I still maintain that there are more benefits to Android than Apple for a school:

  • Android Apps can be hosted directly on our VLE.  So apps which use internal school systems do not have to be published to Google Play
  • iOS Apps can be hosted directly, but are limited to 100 devices under Apple’s Ad Hoc distribution system
  • Android Apps appear in Google Play almost instantly as they do not undergo human-based testing before release.  Some would point out that this is actually a good thing that Apple does, but it does delay distribution and their decisions have been shown to be arbitrary.

Finally if you are considering building your own apps, give serious consideration to Adobe Flash.  Building in Adobe Flash produces a SWF file, which can be used directly on our intranet, so we get an “emulator” each time we make an app.

UPDATE:

On 2nd April 2012, Apple approved my first iOS app, Question Dice and made it available on the App Store.  It’s free to use.  You can access it here, Question Dice

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: