Saturday, April 10, 2010

Apple's limiting developer tools for iPhone

When Lee Brimelow said "Go screw yourself Apple", he was reflecting what many people feel about Apple's decision to limit the use of development tools to cut out the use of Flash & Flex in building iPhone/iPod/iPad applications.

But I think that is also a short sighted view into Apple's motivation.  I have a law about observing people's actions, which is "just because you don't understand the rationale, it doesn't mean it's irrational."  For Apple to limit developer tools out of spite would be irrational.

So what could the rational rationale be?

Well, I think a big clue is that this happened right at the same time as the iPhone OS 4 preview.  What did Apple show off that would cause them to want to limit development tools, and why would they care?

I think you can point to two things: Multitasking and UI experience. 

It's clear that Multitasking is a big thing -- it was first on the list.  And it's clear that Multitasking was hard to get right -- there's no reason to delay it except for trying to find the right way.  And why is Multitasking hard? Because Apple is very concerned about the user experience.  And, generally, Multitasking is a big drag on the user experience of media, especially video.  So Apple spent a long time trying to figure out how both the foreground application and the background application can deliver a seamless user experience.

No matter what you might say, adding additional layers -- such as a flash interpreter -- is going to degrade application performance.  In a single-tasking system, either it's not enough to be noticeable, or if it is noticeable, it is only the application that is penalized.  But in a multi-tasking system, non-native code could affect not only its performance, but the quality of that Skype call in the background.  And remember the penalty is not just in speed, but in size.  Both of which become important in a multitasking environment.

The second on the list is the UI experience.  Native iPhone apps have a very similar UI experience.  But a non-native tool is going to produce a different UI.  You might argue that it's better, or better suited to the task at hand, but nonetheless it is different.  Apple is introducing new interaction models as well, from iAds to background processing.  How likely are Flash developers to use those?

I think it's a better bet that Apple's desire to deliver a consistent experience -- consistent performance with a consistent UI -- is at the heart of the change in development tools.  And ensuring that developers use -- and know -- a set of tools native to the environment help ensure that consistency.

1 comment:

  1. Can I use developers tool without registration? You have made some excellent points there. Used to do they’re certified inside subject and barely found any specific info other websites, but great in order to be here, seriously, thanks.
    read more

    ReplyDelete