I’ve been interested in learning iPhone development for a long time but always had some excuse for putting it off (working on the book, deadlines at work, etc, etc). However, I’ve finally had an opportunity not only to get around to it, but to do so with two different approaches. The first was Flash Professional CS5 with ActionScript 3 and the second was Xcode with Objective-C. While I do like having the option and ability to create apps with Flash (I also plan on looking into tools like Appcelerator Titanium and Corona), I think it’s important as a developer to at least try to learn/understand what’s happening behind the scenes and how to do it the “native” way. With that said, here are the apps:

***EDIT***
I wrote this post this morning before Apple had their little iPhone OS 4.0 event where they announced a new change to the iPhone Developer Agreement that may ban the use of the Packager for iPhone in Flash CS5 for future development. Here’s a tad moreinfo on the subject.***EDIT***

App: Memory4KidzTools: Flash Professional CS5 with ActionScript 3Launched: Jan 19, 2010More info:HereMemory4Kidz was my very first iPhone app to both build and get accepted to the App Store. It’s a simple memory/matching game and the great thing about building this app with Flash was that I already had the code which I had used in a couple of previous game projects. Since I had the AS3 classes for the game engine, the card deck, etc already written and tested, I really only had to create new images to accommodate for the difference in screen size and make a couple of minor tweaks to the code. Once those things were in place, I went through the fairly simple process of publishing the app via the Packager for iPhone in Flash CS5 and I can honestly say that the only real issues/problems I had were more to do with the fact that the process itself was still being developed and kinks were still being worked out. I can also say that the particular issues I faced no longer exist in the process. While I’m not excited about the extra file size that Flash added to this app, I’m very happy with the rest of process and the ease of moving something I originally built as a web-based Flash game over to the iPhone.

App: sequencedTools: Xcode with Objective-CLaunched: Apr 1, 2010More info:HereSo to follow up building an app with Flash CS5, I thought I would go ahead and do what I had been putting off for such a long time and start learning how to build with Xcode and Objective-C. After buying a book or two to read and reference, I started with my own game called “sequenced” which is a pattern matching game where you figure out what comes next in a sequence of items. Once I got into the process, I really started to discover that I had been a little more intimidated than I probably should have been. As some of you may know, the Objective-C syntax feels kind of strange when you’re so used to working with ActionScript for so many years. However, once you start to understand things like how methods are formed (kinda backwards-ish?), it’s not half bad. Oh, and the file size of this app was a great deal less.

To wrap this up, I’ve obviously only scratched the surface of native iPhone development so I don’t feel comfortable making a real comparison between it and Flash development, but I will reiterate that I think it’s important to at least try to understand what’s happening behind the scenes and if you have the time, I definitely recommend learning how to develop both ways so you can choose the right tool for the job when your project calls for an iPhone app.

Enjoy this article?

This is probably the only balanced post I have read so far about iPhone development both using CS5 Packager and native development. Learning new things never killed anybody, instead, many Flash developers prefer to invest time in twittering and keep hearing that “next version of Player is fantastic” thinking that Adobe will solve their problems all the time and ActionScript will be the only thing they need to know.

The point syntax of Objective-C is not much stranger than ActionScript itself, not a big drama that can’t be solved in a few days.

Thanks Jason.
I haven’t developed any more for the iOS, but I did push Memory4Kids over to Android and the BlackBerry PlayBook. I also rewrote sequenced in ActionScript for both of those platforms as well. Now that I can code once in Flash or Flex and deploy to iOS, Android AND BlackBerry PlayBook with that same codebase, I imagine that’s the way I’ll go from now on… for the most part. That said, there will definitely be times when an app calls for pure native development and I’m a big fan of using the right tool for the job at hand. If Flash/Flex/ActionScript can handle it, why not? If it needs to be native (Obj-C, Java, etc), why not?