April 21st, 2010
Apple announced iPhone 4.0 recently. Besides exciting features like multitasking, it also changed its SDK license agreement. The original section 3.3.1 in iPhone 3 SDK License Agreement reads
3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.
Now it changed to
Per my understanding, that means you’re kicked out of Apple App Store if you use Flash or Mono, and the only way to change your fate is to go back to native iPhone SDK. That does not sound too right in the beginning. Why would Apple attempt to put such a strict limitation on its own app development community for no compelling reason? Let me show you the compelling reason.
The biggest potential threat from Flash or Mono against Apple is that they opened or will be opening a door for cross-platform support of Android, Blackberry, or even Windows Phone. They will attract developers to ditch native SDK because it is a cost-effective choice for app developers/vendors to support as many platforms as they can so that they can sell more copies. Unfortunately this is against Apple’s interest. The interest of Apple is to grab the market share as big as they can. Yes, monopoly is sweet. It’s better for Apple that most people in the world use iPhone and most software developers/vendors support iPhone only. Apple shall not risk its own market share by making its apps easily available on competitors’ platforms. So they did it. They decided not to play nice and screwed flash. They have a nice position backed by the market momentum to do that. And they did it.
Similar thoughts can be observed on another giant, Microsoft, who announced that C#/Silverlight/XNA will be the only mean for developing apps on Windows Phone 7. Microsoft ditched the flexibility of developing apps via any language on Windows Mobile, and they forced developers/vendors to stick with C#/Silverlight if they wanted Windows Phone. How dare Microsoft doing so when it had such a weak marketing momentum on smart phones? Well, the real niche of C#/Silverlight is in the cloud: it’s the native development tool for Windows Azure. One can develop a web application using Silverlight and port it to Windows Phone with less efforts, which is very attractive to business applications that are already bounded to Microsoft solutions.
Eventually, there will be two reasonable choices left for developing mobile apps: using native SDK on each platform, or move the app to cloud by converting it to HTML5. For certain apps (e.g. solitaire), the former one is the only choice. You simply can’t assume that all iPod users have network connectivity on their iPods, nor can you be profitable by moving to the cloud due to the nature of business model. Who will pay you to get a password, log on the network and get authenticated just to play a solitaire? Not me.