Here is why I won't be writing native iPhone Applications: (at least not yet)



After spending about 40+ hours with the new iPhone SDK, getting up to speed on Objective-C (which is kinda cool) and modifying a few sample apps with XCode I have come to realize that while Apple makes amazing consumer products and interfaces, they fall completely short of the mark when it comes to developer tooling interfaces. Perhaps it is because I do NOT come from the land of Unix (well okay I used Unix in University, but that was over 20 years ago) and I am not a huge proponent of the command line and I prefer nice comfortable IDE's like Visual Studio or Eclipse that I don't see the magic here.

Just watch the video above to witness what kind of gyrations, both in code and UI, you need to go through to wire up a button to make a beeping noise. Windows popping up all over, connecting objects from one window to another with visual lines... opaque NIB files, etc. I am sure compared to command line C++ development this might seem like a godsend, but for someone who has spent the last 2 years developing almost exclusively with Adobe Flex, this seems like a step back into the stone ages. While I am not a huge fan of Microsoft, Visual Studio really sets the bar for a highly productive and functional IDE, Eclipse is getting better and almost there. When it comes to programming languages to create expressive and immersive UI's there is no beating flex.

I am so eager to develop immersive multi-touch applications on such an amazing device as the iPhone that I have seriously considered investing the 90 days or so I think it would take to develop a modicum of proficiency on new tooling (XCode) and language (Objective-C). But when I look at how pleasurable the experience of developing with these tools would be it looks like it would be trying to go surfing on a huge 100lb redwood board versus the 6lb epoxy short boards I prefer. While I would still be catching waves, things would feel so ponderous and slow. I thought that perhaps I am just missing it, and I needed to shift my mental paradigm to a different one so I would "get-it". After watching the video above, I am not sure that I am missing anything.

Obviously an ideal dev platform for me would be having the iPhone support Flash with Multi-touch so I could develop in flex, but I don't see that happening anytime soon. Especially considering the restrictions in the SDK. The one nuggets I did find in doing my research was that one of the SDK videos talked about the Javascript extensions they were building and the new CSS standards they were supporting. Some of the glimpses I got were:

  • Gesture support via Javascript (gestureStart, gestureEnd...)
  • CSS Animations
  • Transitions
  • Full SVG support and drawing (although not sure if that is restricted to markup or can be dynamic.)
  • Javascript access to SQLite !!! (this is huge in my mind as it could really allow online/offline apps)
The challenge I have though is that I can't find ANY documentation to support those javascript API's. I am thinking that perhaps creating web-apps with these javascript API's will afford me the ability to use more productive tooling and get the same great features. I just need to figure out how/if the SDK will allow us to support web apps running in an offline state, and if it will be possible to sell web-apps via the AppStore.

 

0 Response to “Why I won't be writing native iPhone apps anytime soon.”

Leave a Reply