TheTin’s Dave responds to Apple’s Steve…
April 30th, 2010
Yesterday Steve Jobs released publicly his thoughts on Flash. Whilst an interesting read, it had some rather blatant flaws. In one continuous piece he came up with reasons/excuses why Flash was not on the iPhone and iPad. Of course the current, very public, dispute between Apple and Adobe, really isn’t about the Flash plug-in for browsers, but the ability to use Flash as a development environment for Apple packaged apps.
His first point is about open standards. Whilst Adobe do indeed create the player, and the base functionality, they give away free tools for development (the Flex SDK) on many platforms. They have opened up the SWF format, which is now open source allowing for great extensibility. There’s a shed load of open source APIs developed for Flash from connecting to practically any other open API, to full 3D and physics engines.
Obviously he doesn’t mention the Open Screen Project, which has every major phone manufacturer (bar Apple) on board, all working together to define standards for mobile development. Flash player 10.1 and Air 2 could easily become the de facto standard for smart app development. As a developer its surely a more promising proposition to develop for every mobile device, and desktops at the same time, with one code base. Worth pointing out that AIR apps don’t have to be built in Flash, and can be built using JavaScript.
I find it quite odd for Apple to bang on about open standards though when Apple are pushing for a future where rich interactive content is served on its iDevices through the form of custom apps. Custom apps built by developers who focus on iDevice development, and hence not other competing devices, as the code is native to Apple. Developers who have to code using the tools and hardware Apple dictate.
He then moves on to the “full web”. He tries to make out that Adobes biggest point is the use of Flash for video playback. Whilst its true this is a big point Adobe makes, it’s certainly not the only. There is a vast amount of interactive content that has no video at all, from games to betting applications through communication tools and desktop apps. He also tries to suggest Flash uses “old” video, by referring to a more “modern” format, H.264. The fact the Flash has been able to play H.264 for over 2 years seems to have escaped him here.
He seems to suggest it doesn’t matter they don’t have the full web because .. “There are more games and entertainment titles available for iPhone, iPod and iPad than for any other platform in the world”. Well that’s simply just not true. There are more games and entertainment websites that run on PCs/Macs, and many of these are due to Flash.
With regards to security, it’s a bit of a vague area. It’s very hard to make sense of all the data, as the player is so widely used. Flash is on practically every internet connected desktop in the world. Different groups will read what they will into figures, some not taking into account its distribution as a weighting factor. There’s no doubt there has been security issues in the past with the Flash player, but these have generally been dealt with rapidly. Let’s not forget browsers themselves are a security risk and are frequently updated to plug holes.
When it comes to causing crashes on Macs, part of the problem lies with Apple, and they way Safari integrates 3rd party plugins. Apple control that space, for example Quicktime is the only video player that is allowed to use hardware acceleration when embedded in the browser. His statements about the capabilities of Flash on mobile devices is simply wrong. Player 10.1 has been built with mobile in mind. It’s been shown running on many mobile devices perfectly well.
Battery life (here he does acknowledge Flash has “recently” added H.264 support, when it is in fact a couple of years). He mentions the hardware decoding, Player 10.1 does this, and would on Macs, but doesn’t as Apple don’t allow it.
He may be worried that badly coded Flash could drain a battery unnecessarily, and this is a legitimate concern. I would never try and deny there isn’t badly produced Flash content out there, that uses more resource than it should, but that’s the same for any platform or environment, and is the developers fault, not the platforms. I have seen plenty of iPhone apps passed which are both terribly buggy, and also cane the battery. Of course there’s also over 100 apps that Apple have passed, that have been built using pre-release versions of Flash CS5.
Fifth, Touch, love this one. Some Flash sites (certainly not all) may rely on rollover for menu expansion, but then so do many HTML ones, via JavaScript. It really isn’t difficult if required to go back to a project, and modify the code to work on both touch devices as well as mouse driven ones. Most sensible designers today would make a site work in both ways anyway. Rollover a menu to have it expand, click on it to have it expand, it’s an extra line of code ensuring it works in both ways, without affecting the other. Well before Apple released the first iPhone, people have been using Flash to create touch screen driven content.
“Even if iPhones, iPods and iPads ran Flash, it would not solve the problem that most Flash websites need to be rewritten to support touch-based devices.” That’s simply not true, and if it were, it would also be true for HTML sites.
Now his final point is where I actually agree with some of what he says. Of course if I was to develop an app in Flash and publish it for iPhone/iPad as well as Android and other devices then I would have to develop for the common feature set that they all support. That means the finished product may not be as good functionally as had it been developed solely for that platform. Also by not writing native code, optimised for that device, the application may not run as well as it could if coded with the target platforms strengths in mind.
However, as nearly all these devices have the same features (camera, GPS, tilt sensors and accelerometers) I fail to see functionally what the Apple device could do that most others couldn’t, and hence why the Apple customer would be getting apps with restricted features. And that’s to assume that all these apps require the use of all these features, and power. My most regularly used apps on my iPhone don’t use any advanced features. Spotify and the National Rail app could easily be built in Flash, after all they are simple API driven interfaces for data. Most games use simple touch to replace buttons, or a drag motion that is replacing a mouse, all be it sometimes in a more natural way. All completely possible from within Flash.
Of course if they allowed Flash apps to be published for iDevices, then developers could choose and use the appropriate tool for the job. They could use Flash for a cross platform delivery, but Xcode for something truly native and optimized for the iPhone/iPad. Remember this all blew up, not because they don’t have the Flash player on the iPhone/iPad integrated into Safari, but because they have essentially blocked Flash (along with any other 3rd party development environment) being used to create Apple apps.
“Conclusions.
Flash was created during the PC era – for PCs and mice. Flash is a successful business for Adobe, and we can understand why they want to push it beyond PCs. But the mobile era is about low power devices, touch interfaces and open web standards – all areas where Flash falls short.”
Flash doesn’t fall short. It has been shown running on low power devices, and soon will be on everything from mobile phones, to your Sky box (along with nearly every home computer in the world as well). There are more Flash websites than there are iPhone apps. There are more content providers delivering rich media through Flash than iPhone apps. The latest version of Flash has native support for multi-touch gesture based interfaces (and through open source projects has done for some time). It may have come from the PC era, but it is always evolving, with new features and delivery methods.
As the Open Screen Project shows, they have tailored the latest player around the needs of the device manufacturers that the player will run on. Both in terms of functionality, and performance.
Worth noting (in case you hadn’t noticed) I am a Flash developer. But I also own an iPhone, and do any development outside of work on a MacBook Pro. I love both devices. The hardware is solid, reliable, and a pleasure to use. Had Apple not made the decision to stop Flash being used as a development environment on the iPhone/iPad I would have been developing apps for the iPhone now with the release of CS5. As it is I still will, but they will simply have to be classed as prototypes, waiting until I get an Android phone to release them on.
