Technology

General

Browsers

At Work

Flash / Flex

SWF Studio

Ruby

HTML 5

Flash or Flex

The Flash Player

The Flash Player has been around for a long time and has gone through many changes. It began way back when download speeds were less than a snails pace compared to todays broadband. A time when it could take a lifetime just to download a photo of decent size and quality.

As a result, the Player was originally leveraged by developers in order to produce high quality images and animations. Their file sizes were small in comparison to any other available technologies of the time, and so provided faster downloads. The Player took hold quickly, and now it has a larger user base than all the different flavours of Windows put together.

This is because it is cross-platform.

It doesn't matter whether you still use Windows, have branched out and moved over to one of the more popular Linux distributions such as Ubuntu, or you have treated yourself to one of Apple's supreme and powerful beasts.

The Flash Player runs on them all.

As Adobe continued the Player's development, more and more developers found that complete web sites or applications could be built to run in the Flash Player. One of the benefits being that no matter which browser the user has, the site or application would look and function the same - completely removing the need to develop with multiple browser support in mind.

This was great for the lazy developers - one site fits all. Except that if you wanted to utilize the latest features of the Flash Player, your user would have to have the latest Flash Player installed.

If they didn't, they would have to download it before they could view the site - and forcing a new visitor to download or upgrade just to enter the site is not recommended.

It's much better for users if the site they visit is HTML, leaving Flash to parts of the site where Flash is more suitable - the right tool for the job.

These can be areas such as audio players or video walls - You Tube utilizes the Flash Player to play back video content.

Members areas are candidates for full Flash based applications - if someone takes the step of registering for your services, they are not likely to worry about downloading the latest Flash Player if it is required.

Internal applications, where all workstations will have the required Player, can also be candidates for full Flash Player deployment.

Finally, there is the lesser known world of the Flash Player on the Desktop. There are many tools available to port the Player to a Windows Desktop based application. SWF Studio is my tool of choice.

Flash

The original way to develop anything to play in the Flash Player, was to purchase the Flash software from Adobe. This enabled developers to easily create content for Flash Player playback.

The software provides a development environment, of sorts. The centre piece of early Flash projects was the timeline. This enabled developers to easily create time-based animations - adding basic scripting to key-frames enabled a modicum of interaction with the user.

However, as the Player evolved with new abilities, and improvements in its' scripting language, developers continued to push the boundaries of what could be done with Flash.

Version 2 of the scripting language introduced a more component based environment. This enabled developers to create re-usable components - vastly increasing productivity. The timeline became less important to serious developers, while managing and maintaining their codebase became more important as projects grew in size and complexity.

Eventually, the scripting language evolved to version 3 (AS3), an Object Oriented language. The improvements in the language provided the ability to write even more complex applications - but in a much more manageable form. The only problem was that the Flash software - the environment designed for building these complex applications - hadn't changed much - it still hasn't.

It just doesn't cut it when writing anything substantial, especially when working as part of a team. Code can go in many places, which can cause a headache for a single developer when hunting down a bug, or revisiting a project after some time. When a team works on a Flash project, unless there is strict control over where code goes, productivity can soon fall away.

Thankfully, the release of AS3 coincided with the release of Flex 3 from Adobe - a much more suitable environment for developing large scale applications for deployment to the Flash Player.

Flex

Flex provides a much more business-like approach. For a start, the timeline is gone. Instead of adding code to various key-frames on the timeline (an all too often seen bad habit), Flex 3 utilizes the event driven, Object Oriented nature, of AS3 (version 3 of the scripting language for the Flash Player).

Removing the timeline meant that there was no more code scattered around different key-frames on different timelines in different Flash files.

AS3 meant that the Object Oriented world had reached the Flash Player - making it easier to produce well designed applications.

MXML was introduced. This is a markup language which provides a simple way to describe the view - the part the user interacts with.

The combination of MXML and AS3, meant that there were natural, logical places to put code - immediately improving productivity. Designers and developers were able to focus on their own tasks. The designer could build the view in MXML, while the developer could focus on the layers of the code that bind it all together.

Creating code libraries that can be shared across projects is simple. Creating single use components is trivial.

Creating applications with an MVC (Model, View, Controller) architecture is a breeze.

In short, Flex can be used to display an image in a web page, to build an enterprise level application, or anything in between - it's the skills of the developer that determine where the boundaries lie.

Page last edited: 9 April 2011

Methodology

General

Agile

OOP

Architecture

MVC

Framework

Ruby on Rails