My Path to iPad Devlopment

Waiting for an excuse to learn

I have been wanting to learn to develop for mobile devices since I got my first Windows Mobile phone six years ago. At the time my attention was occupied with the impending birth of my first son, and the traumatic transition from working life1 to becoming a stay-at-home parent.

I want an iPhone… never mind, I want a Droid!

Two years ago my wife and I were wanting to treat ourselves to iPhones… then Verizon launched the Motorola Droid.2 By this time our second son was 1-year-old and I was too busy raising two young boys.

The path to an iPad (and to an iPhone for the wife).

This summer, Google launched the “Honeycomb” version of Android meant for Tablet devices.3 Although I had trouble justifying why I needed one, I bought an Android tablet. I found it quite handy and my 5-year-old, my wife, and I all got addicted to playing Plants vs Zombies. It was clear we needed a second tablet. To justify buying an iPad we did some research and found a bunch of nice educational apps/games for our boys to play and learn at the same time… oh and PvZ was available on the iPad as well. My wife enjoyed the iPad enough that she traded her Droid for an iPhone 4S.

An opportunity appears.

I was talking to Zach Thicksten of Palomar Amusements about the challenges of running his monthly pinball tournaments. He expressed his desire for an application which would help him keep track of the tournament brackets. A few months went by and that idea stuck in my head, then my son started Kindergarten. Ah ha! With only one kid to keep out of trouble I should have a bit more time to learn mobile development. I realize this app would perfect for a tablet.4

Why this Android fan decided to develop for the “enemy”.

As a long time Android advocate I found it frustrating when I felt like “all the good apps” are developed for iOS. Or at least they often appear to be developed for iOS first, and maybe never ported to Android.

For a while I was determined to find a cross-platform development kit that would allow me to simultaneously create my app for both platforms. After trying several tool kits I came to the realization that “there is no “magic” tool that will allow me to develop this simultaneously for multiple platforms, without compromising the quality of the User Experience.5

With the iPad holding the majority of the tablet market share currently, I conceded that it makes sense to develop my app for iPad first, then recreate it in Android. I also read that it is a lot easier to build your app for a second platform.6 Besides, Zach told me he is looking for an excuse to buy an iPad, so it doesn’t make sense for me to force him to buy an Android tablet instead.

References

Books
Teach Yourself iPad Application Development in 24 Hours

iPad iOS 5 Development Essentials

Custom iOS Controls and Libraries
Cocoa Controls for iOS Directory

ActiveRecord for iOS. A slick way to access data in your app’s SQLite database.

DCRoundSwitch I like this because I can customize the Yes/No text on the switch.

PDF Reader/Viewer for iOS. A page flipping PDF reader. I am using this as the start of a new educational app I am working on with my son’s Kindergarten teacher.

Source Control/Licenses
GitHub. A great free place to back up / share you code.

Open Source Licenses. Descriptions of Open Source licenses.

Websites
Google: “objective-c ios {search_term}”. Once I finished working through enough lessons from the books I dove into coding by searching for examples of how to accomplish the task I was working on.

StackExchange. Google searches often lead to this site.


  1. For nine years I worked as a website developer for SiteLab Interactive in La Jolla, California. 
  2. Verizon explicitly promoted the Droid as an Apple iPhone-alternative. Launched on October 17, 2009 TV spots and an associated website made “entertainingly combative” claims listing features lacking on the iPhone, e.g. “iDon’t multitask”, only mentioning the name of the Droid in the final frame, reading “Droid Does”.
    Source: Motorola Droid Launch on Wikipedia 
  3. Android (operating system) on Wikipedia 
  4. Pinball Tournament Management App Discussion 
  5. Epiphany: There is no magic solution
  6. It’s really not as hard as you might think actually. Once you write the code for the first app, you work through all the intricacies of the business logic etc. Then when it comes time to build it on the next platform, you basically just translate from one to the other.

    Comment by Ben Monro on Multi-platform development 

Played a couple of games pinball today

A couple of months ago I shorted a switch to a coil on Medieval Madness killing multiple components. I spent several weeks following the troubleshooting guide (“Check Fuse F106/F101“) and replacing almost every recommended part without fixing the problem. Every time I have thought about playing pinball since then, I’d look over at Medieval Madness and feel too guilty to play another machine.

This week I handed my game boards over to Pat at Endless Pinball for some professional troubleshooting. Now that the guilt has lifted I played a couple of games on Pirates of the Caribbean at home this morning. :)

In honor of the futuristic year 2010

I’m trapped in a world before later on.
I’m trapped in a world before later on.

Where is my hovercraft?
Where is my jet pack?
Where is the font of acquired wisdom that eludes me now?

We’re trapped in a world before later on.
We’re trapped in a world before later on.

Where’s our telray?
Where’s our space face?
Where’s all the complications we won’t see around?

“The World Before Later On”, by They Might Be Giants.

Listen to the song on Google.