Archive

Archive for April, 2010

Steve Jobs’ Thoughts on Flash

April 29th, 2010 markledford 4 comments

Updated 06/04/10

As a consumer and lover of Apple products and a full-time Flash developer it was interesting to see Job’s RDF used against Flash (Oh no! Daddy hit mommy!). But seriously, its about time that Apple replied to the hoopla regarding its blocking of Flash on its Iphone platform. I may have my biases being a Flash developer but I also have my expertise in the field and I couldn’t help but note that most of the reasonings outlined in his article were pretty poor at best and completely meritless at worse.

No Flash site i know of “depends on rollovers” and would have to be “completely re-written” to support touch. Navigation is almost always based on mouse clicks which get triggered regardless of whether its touch or not.

Its silly not calling Flash a modern technology, it drastically updates every year, sometimes completely re-written, and its really the only technology in the world that does that and gets adopted near 98% year after year regardless–html certainly doesn’t do that. Even today with html 5 there isn’t an agreed upon video format. Some browsers require the Ogg Theora format which no one would otherwise transcode for right now, and the other mp4 which has its own can-of-worms with potential licensing costs as the patents are owned in part by, ding, Apple. Even with that hurdle quashed there are technical and logistical issues with supporting ad networks in html 5 video, but Apple is there again to take a bigger cut of the pie with its recent purchase of mobile ad network Quattro Wireless and new iAds advertising platform. Steve Jobs is creating an artificial hole in web media under the pretenses of open standards–something Apple is normally a foreigner to, to monetize and control it when restarting it from the ground floor.

I think I could provide significant arguments for practically every point (like that whole transition layer debacle) but I’m sure there’ll be plenty of that gong on on the internets.

What it comes down to is that there’ll always be the right tool for the right job and Flash still does certain things best right now. It continues to innovate with a refresh cycle that html with its design-by-committee is not close to catching up with. It really isn’t the complete web without supporting it and Adobe continues to update Flash Player to keep it relevant to modern needs. Adobe has been working on some hard core mobile optimizations with its Open Screen Project and Flash Player 10.1 which is in RC2 and continues to partner with the big names to make it happen.

My two cents,
Mark

Some good rebuttals are popping up btw:
http://www.businessinsider.com/steve-jobs-is-lying-about-flash-2010-4
http://jessewarden.com/2010/04/steve-jobs-on-flash-correcting-the-lies.html

Great summary in the first article:
Steve needs to stop trying to make this into a “technology” issue when this is all about money. If you came out and said you’re not supporting Flash because you can make more money without it, fine by me, I won’t argue with that. But to try and disguise it as something else, that only makes Apple look bad, not Adobe.

Categories: flex Tags:

FYI ExternalInterface.available probably doesn’t do what you think

April 22nd, 2010 markledford 1 comment

I think the general Flash Dev consensus is if ExternalInterface.available returns true that you can use ExternalInterface in the swf. This is actually not the case as this property does not check if your security sandbox allows you to use javascript. This is an important distinction for things like Flash widgets that can end up on 3rd party destinations like Facebook that re-write allowScriptAccess=”never”. You’ll need to always try/catch these calls to ensure a security sandbox error won’t break your swf. The closest to documentation on this I could find was this cautionary foot note in the docs which does not explicitly mention security sandbox issues:

NOTE The

 ExternalInterface.available

property reports whether the current container is a type that supports ExternalInterface connectivity. It will not tell you if JavaScript is enabled in the current browser.

Categories: actionscript Tags: