Hey there, well, it was my turn at our traditional In-House Knowledge Share this month and as one of the designers at Insight, one of my activities is to keep current on new technologies and trends. I wanted to explore the three most popular rich interactive applications at the moment; Flash, Flex and Ajax, and learn their benefits and disadvantages so that we can provide our clients and their users the best possible solution.
So without further a do, I’ve dissected them hoping to get everyone to draw their own conclusions.
Adobe Flash (previously called Shockwave Flash and Macromedia Flash) is a set of multimedia software created by Macromedia and currently developed and distributed by Adobe Systems. Since its introduction in 1996, Flash has become a popular method for adding animation and interactivity to web pages; Flash is commonly used to create animation, advertisements, and various web page components, to integrate video into web pages, and more recently, to develop rich Internet applications.
Flash can manipulate vector and raster graphics and supports bi-directional streaming of audio and video. It contains a scripting language called ActionScript. Several software products, systems, and devices are able to create or display Flash content, including Adobe Flash Player, which is available for most common web browsers, some mobile phones and other electronic devices (using Flash Lite). The Adobe Flash Professional multimedia authoring program is used to create content for the Adobe Engagement Platform, such as web applications, games and movies, and content for mobile phones and other embedded devices.
Macromedia Flash Development Process
- Design an application interface using any visual design sofware package such as Freehand, Illustrator, Fireworks or even Flash itself.
- Add dynamic behavior (one part of the application interacting with another, for example) and interactive behavior (what happens when a button is clicked for example)
- Define and connect to data services as needed(XML)
- Publish the file and embed it on an html if it is for the Web. Or create a self contained movie if the application is for CD/hard drive use.
Adobe Flash Player is currently in its 9.0 version but it is its 8.0 version that has more than 80% penetration in the market.
Advantages of Flash:
- Flash is quite versatile with its ability to handle videos, images, vector animations, key-frame animation
- Its worldwide presence and OS compatibility
- Great for games and interactivity.
Disadvantages of Flash:
- Loading times and size of webpage.
- Flash is not search engine friendly. Therefore, a Flash-based web site may not rank well in the search engine results (Also called SERPs). It is important to know that search engines (as well as humans) like simple and quick to follow web pages, and not a complex and difficult to navigate web site.
- Most Flash pages over-use the animation/eye candy aspect in detriment of the content.
- Currently not supported in some Mobile devices
Examples of Flash:
Adobe Flex is a collection of technologies released by Adobe Systems for the development and deployment of cross platform rich Internet applications based on the proprietary Adobe Flash platform. The initial release in March 2004 by Macromedia included a software development kit, an IDE, and a J2EE integration application known as Flex Data Services. Since Adobe acquired Macromedia in 2005, subsequent releases of Flex no longer require a license for Flex Data Services, which has become a separate product rebranded as LiveCycle Data Services.
In February 2008, Adobe released the Flex 3 SDK under the open source Mozilla Public License. Adobe Flash Player, the runtime on which Flex applications are viewed, and Adobe Flex Builder, the IDE built on the open source Eclipse platform and used to build Flex applications, remain proprietary
Traditional application programmers found it challenging to adapt to the animation metaphor upon which the Flash Platform was originally designed. Flex seeks to minimize this problem by providing a workflow and programming model that is familiar to these developers.
The Flex SDK comes with a set of user interface components including buttons, list boxes, trees, data grids, several text controls, and various layout containers. Charts and graphs are available as an add-on. Other features like web services, drag and drop, modal dialogs, animation effects, application states, form validation, and other interactions round out the application framework.
Flex is in its 4.o beta version and bacause it uses Flash player, it also has great presence.
Flex Application Development Process
- Define an application interface using a set of pre-defined components (forms, buttons, and so on)
- Arrange components into a user interface design
- Use styles and themes to define the visual design
- Add dynamic behavior (one part of the application interacting with another, for example)
- Define and connect to data services as needed
- Build the source code into an SWF file that runs in the Flash Player
- High penetration
- Uses Flsh player tecnology
- Provides real-time access to the most current data form outside sources
- Flex has gone fully open source
- Needs the Flash players so with it compatibility on some devices come too.
- Need to learn XML language and Actionscript to build anything.
- Limited visual capabilities
- In many cases, the pages on a website consist of much content that is common between them. Using traditional methods, that content would have to be reloaded on every request. However, using Ajax, a web application can request only the content that needs to be updated, thus drastically reducing bandwidth usage and load time.
- The use of asynchronous requests allows the client’s Web browser UI to be more interactive and to respond quickly to inputs, and sections of pages can also be reloaded individually. Users may perceive the application to be faster or more responsive, even if the application has not changed on the server side
- The use of Ajax can reduce connections to the server, since scripts and style sheets only have to be requested once.
- Dynamically created pages do not register themselves with the browser’s history engine, so clicking the browser’s “back” button would not return the user to an earlier state of the Ajax-enabled page, but would instead return them to the last page visited before it. Workarounds include the use of invisible IFrames to trigger changes in the browser’s history and changing the anchor portion of the URL (following a #) when AJAX is run and monitoring it for changes.
- Dynamic web page updates also make it difficult for a user to bookmark a particular state of the application.
- The same origin policy prevents Ajax from being used across domains, although the W3C has a draft that would enable this functionality.
- The lack of a standards body behind Ajax means there is no widely adopted best practice to test Ajax applications. Testing tools for Ajax often do not understand Ajax event models, data models, and protocols.
- Opens up another attack vector for hackers that web developers might not fully test for.
Examples of Sites with Ajax:
- It should only be used for visually heavy sites such as photo portfolios and web games, as opposed to content heavy.
- It could also be used in moderation to enhance the user experience or grab his/hers attention.
- Great for video.
- It is used mainly by programmers at this point.
- The best use of this method is if the content of the website is updated on a regular basis.
- It should be used for updating content without loading the UI.
- Great for forms, surveys and questionnaires.