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 

Leave a Reply