Saturday, 17 April 2010

Apple, iPhone OS4 and the others (or should I say "vs others")

Last week Steve Jobs announced iPhoneOS4 personally. Besides the new APIs, multitasking and all the other nice features, I'm sure no one was expecting to see flash support but even more Jobs closed the gates of App Store to all binaries which are built using a compability layer including Flash CS5, which has an export tool, just few days before Adobe's CS5 release.
“3.3.1 … Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).”
Jobs responded comments as such compability layers produce substandard apps which might be true in terms of performance and memory but the way and timing of the announcement, seems like Jobs really wants to hurt Adobe.  Although OS4 is going to bring great features, this version change became more popular with discussions over the latest prohibition. Jobs did this version change trick to change the rules when he returned to Apple. In 1997 Mac OS 7.7 was renamed to 8 to change the licencing and stop production of mac clones which Apple licenced to third party manufacturers.

There is also one more item in the agreement trying to stop comments about the statement.
“10.4 Press Releases and Other Publicity. You may not issue any press releases or make any other public statements regarding this Agreement, its terms and conditions, or the relationship of the parties without Apple’s express prior written approval, which may be withheld at Apple’s discretion.”
Oh by the way iTunes on windows does not even use native OS's apis, it even uses custom scroll bars on Windows OS which might be calles illegal if Microsoft had such a term in Windows's agreement.

No matter what Nokia and RIM says Apple is the main player smart phone market. RIM sells blackberries to corporations, and they like to buy it since its labeled as an office device. Also they have the advantage of secure data connection to Blackberry Enterprise Server but if they can not keep up their device hardware and software up to date those issues can change really fast. Look at Windows Mobile, they used to have a such advantages too (and see where they are now). Does anybody still really use them? If RIM is still under the illusion of best selling smart phone producer (as they mention in every presentation or announcement) it has already been to late for them. Nokia already left the higher end device market. They produce cheap and basic phones and sell in high quantities. Nobody really targets RIM and Nokia when building web sites but iPhone. This issue is hurting Adobe and pushing designers away from Flash.

Release of flash free iPad and the announcement of the SDK agreement change may seem as a bold move but if we go back to first announcement of iPhone when there were no applications in app store and the all other mobile world was full of JavaME apps, that time Jobs left Java out of iPhone calling Java as a ball and chain.

I understand Jobs that he wants to control the apps distribution on mobile market and find it reasonable (although personally i would prefer a not closed device). Mobile devices are not computers, they are limited and mostly target communication and connectibility. Most of the time you wont have time to reboot or reinstall things. So Jobs vision of controlling software on those devices work as a safe guard preserving the stability. However, iPad is a bit more than a mobile device so limiting it to app store is just making it not attractive for geeks. Jobs does not want Java and Flash not only they form another layer o top of OS to run the application, he does not want them because they can execute arbitary code which might be downloaded from web or somewhere else out of app store. I also understand Jobs's concern about the problems of the compability and transformation layers. Lets say what if Flash becomes the main development platform for iPhone and Apple introduces a new API which Adobe does not integrate into Flash's iPhone App support.  Such an issue would definitly collapse the innovation. But what about projects like Unreal Engine on iPhone. I think with the current SDK it would not be legal for such an engine to run UnrealScript although Unreal Engine seems like a great match for iPad!

Also it seems like Jobs did not forget Adobe to declare Windows as their primary development platform in 1996 while Apple was struggling about financial issues.

So what will happen now? Well Adobe is quite angry, internet is full of sites showing their anger. Some employees even telling they stop using macbooks and buying music on iTunes. Apple is taking another bet. When they introduced iPhone to mobile world, they did not have lots of apps and developers community who knows objective-c where there were many JavaME developers. They refused Java and continue their way, dominating the mobile world and building a huge app store. With OS4 finally they are introducing multitasking, folders and other achievements. Also I am expecting to see a major hardware and design upgrade on the device.  Defintely they will continue pushing developers to build native  objective-c apps. Meanwhile Google's Android army is finally ready. The long development process finally built a nice, open and extensible OS, which is rumored to be use on tablets and even on ebook readers! Google's effort to make manufacturers to build sleeky devices finally made new sexy devices to be available such as Nexus One, Desire, Legend, Droid. Android's SDK is built on Java and is very extensible, which qualifies Android as a dream platform for a developer. However time will show how other consumers will react to the device. For sure Android has a great advantage. They have full support for Java and Flash which are the platforms of the modern web.  Also unlike Apple announcing an upgrade yearly, a new Android device is announced every day. Besides they have huge problem of versioning and device support. I still use Android 1.6 on my Ion developer device (come on its a developer device, I expect to see new platform upgrades available instantly!).

So for now Apple seems alone vs everyone. Although they also get hurt by not supporting flash (no flash support means no real web experience) they definitely hurt Adobe more. The new OS4 looks promising but without a major hardware and design upgrade, android may take up the lead. I'm sure Jobs is preparing a great suprise for June.

Well so for now if you want to develop on iPhone grab a Objective-C book...