I’m an interactive developer and the main part of my job is to build interactive experiences that connect people with data.
Like any builder, I use tools to do my job. Over many years, I have carefully chosen the tools I use and have watched them change and grow. I’ve kept up to date with the strengths and weaknesses of each of them so that I can apply them correctly in my work.
Flash is one of the tools I use often as the experience I can deliver is fantastic. I’ve seen the platform and language grow over the years and while I do get frustrated at some of its oddities and occasional bugs, I’ve come to be quite fond of this tool in my toolbox.
I like the flash platform enough that I dedicate every third Wednesday night of the month, along with preparation time, to co-manage the Brisbane Flash Platform usergroup. Along with this, I’m organising the flex launch party for Brisbane and speaking in the flash stream at the webdu conference, as I have for the last 2 years.
Recently there has been a lot of talk about the demise of flash and why flash is ‘bad’. I wouldn’t mind if it was factual, but I’ve become annoyed with the misinformation that keeps getting spouted about the flash platform. I’m writing this blog post so that I don’t have to keep repeating myself when presented with misinformation.
Flash is accessible
If you are curious about the details, come along to the Brisbane flex launch or my Webdu session. There is a bit of work to get accessibility to work smoothly when you have custom rich content, but that workload is decreasing and the information and support is increasing. There is also a lot of out of the box accessibility in flex and flash.
I have been making keyboard accessible projects since 2003, when I started working for an eLearning company. Even back then, buttons were keyboard accessible without any additional work by a developer. Having custom tab order more of a challenge, but possible.
Flash can talk to screen readers and other assistive technologies through the Microsoft Accessibility interface. This has been possible for a while (2005 from memory). Other platforms are on Adobe’s radar too: http://blogs.adobe.com/accessibility/2010/03/flash_player_and_flex_support.html
If you plan your application correctly, you can skin it to support larger text, more contrast etc just like, and sometimes more powerfully, that you can do with CSS.
Flash takes no longer than any other content to load
Flash sites are often larger than html sites only because of the extra content they contain.
Flash has fantastic loading controls; you can control which order elements load (instead of the browser deciding for you) and what how many bytes are loaded at a certain time. Flash is also a compiled language, so only the final binaries are sent to the browser. This can make a code heavy site actually smaller than its html/js counterpart.
You can use browser controls to navigate in flash
Search ‘deep linking flash’ or ‘swfaddress’ in Google.
Ads and annoying intros are easy to produce in other languages
Yes ads and some intros can be really annoying. If/When HTML5 becomes available; the same annoying content will still be present. Removing flash from the equation won’t remove bad design or advertising.
Content isn’t free to produce. If you are not paying money for the content you are receiving, then you are paying through another currency. This is usually through advertising or the data that is being collected about you.
Adobe is not about to die
Adobe produces tools for designers and developers. Those tools will move with the community. Even in a world with no flash, people still need the ability to create graphics, animations and code.
I’ve seen demos at adobe events and online with content publishing from adobe tools out to HTML5 and linking with data to render dynamically. Producing tools for flash does not exclude them from producing tools for other mediums and technologies.
HTML5 does not do everything flash does
As I was working on a project this weekend I realised that without flash I wouldn’t be able to build what I was building. Sure I could still build the intention of the system (a safety quiz), but it wouldn’t have the same engaging experience to make people want to interact with it.
I’m really looking forward to HTML5 being finalised and adopted, but it will be just another tool in my toolbox. Like my other tools, it will have its limitations and benefits. At the moment it isn’t there yet and even with the canvas features, it still doesn’t come close to what I can produce with flash.
I fear browser adoption will be slower than flash player adoption. I remember back to the flash player 6,7 and 8 days when there were plenty of neat things we could do, but our target audience did not have the latest players. Now that the player updates nicer and there are more warnings about security, the uptake of updates has increased. Browser upgrades on the other hand are still a painful and we still have to support IE6 in a lot of our development.
The Flash platform doesn’t chew up CPU and or crash browsers
A site that chews up your CPU or crashes your browser is due to bad software development. Trust me, I can kill your browser very easily with some nice JavaScript animations.
Flash does belong on a touch screen device
Touch devices in consumer pockets and homes is a relatively new development. A lot of current online content relies on mouse over interaction to work correctly. If content providers want to target these new consumers, then they will have to change their interaction design not by changing the tool they use. I’ve done a few projects for touch kiosks and having no mouse over doesn’t limit what you can produce.
The next version of the flash player will have multi-touch support along with support for accelerometer and navigation sensors for mobile devices. If you’re curious, go look at the feature list for flash player 10.1 and the partnership adobe have with the other 19 of the top 20 smart phone developers.
Intermediate layers produce sub standard apps
I believe that the more you abstract, the more you sacrifice in performance and/or control. This doesn’t mean I want to build everything from scratch. Libraries and tools speed up development time and allow content to be created in reasonable timelines.
I was looking forward to being able to publish flash content to iphone binaries. The company I work for develops business iphone apps including the Australian Dominos iphone app. The feature to publish flash to iphone wouldn’t replace our native iphone development, but would bring an opportunity to produce extra content that was cross compatible with other devices where appropriate.
I do find it sad that apple has chosen to exclude apps based on the tools used to build them instead of judge apps on their merit. Time will tell if they have enough of a developer community to support their new rules or if their exclusion will cause developers to move elsewhere.
You can develop flash applications for free using open source software
You can build applications for the flash platform completely free. Get the flex SDK from http://opensource.adobe.com/
If you wanted to write in notepad and call the command line compiler you could, or you could get a copy of flash develop (free and open source). This program is fantastic and I use it daily. Their time is worth as much as yours so please donate to them if you use the program.
I also use the creative suite daily to produce the graphics and animations for flash applications and from a business sense they are worth every cent. Adobe doesn’t prevent you from using any other program to create your flash platform targeted apps.
In summary
Bad designers and developers write poor interfaces and bad code – don’t blame their tools.
Thank you for reading and I hope you have learnt something.
I’ll add any extra points I hear over the next few days.