Friday, May 13, 2011

iPhone Development Review

I started some iOS development from scratch starting in 2010 in May.  I wanted to create a talking weather alarm clock and had not done *any* iOS development previously.  Yes, I worked with C but primarily, I've been doing java development for the past 14 years.  I was surprised that development was "required" to be done (this has since been laxed) in Objective C. 

The time I allotted to this project is my daily 2.5 hour (round drip) comute. This doesn't allow me nearly enough time to focus as I'd like but still was enough time to get "something" done.

Things I needed to learn for this project:
1. Objective C. Objective C isn't a difficult language to learn. The syntax is similar enough to other languages BUT memory management is something that has to be taken seriously.  

2. Objective C has also adopted many patterns and unenforced rules.  I.e. the word alloc means you're responsible for releasing an object but if an object is created without a special keyword, then it is autoreleased.  

2. The *vast* iOS api's.  Along the way I needed to understand Audio, Animations, NS Core Data Structures, Table Window semantics and threading concepts.  

3. Creating images using Adobe Illustrator.

4. Creating sounds using Garage Band.

While all of these things are not hard by themselves, doing them all yourself is very time consuming and I wished a many times for a partner to help out but that didn't work out as I had expected.

So the app is now in the app store review after much frustrations. Once it's available, give it a shot. You can download the app "snooZe" (it's free :) in the iTunes app store.

If I had to do it again, I would probably use a 3rd party library. I've been researching Cocos2d (free), Corona (free to develop, $200 to deploy), and Unity ($$$). I'll write about them in other posts.