Archives for December 2006

Flex RIA usability

As Flex usage continues to take off and Apollo prepares for launch, bringing with them a whole new breed of application developers, we would all be well served to invest some time and energy in usability design. Everyone knows good usability design when they see it, use it and experience it, yet it is something that can be very hard to achieve. With tools like Flex and Apollo it is only a matter of time before a new generation of applications become pervasive, both on the internet and on the desktop. The great part about this is that developers are not bound by the same constraints that traditional application developers are bound by (ie. Flex/Flash provide much greater design flexibility). This can however, be a huge liability. There is a reason most high end, high volume desktop applications look the same, the 'look' has been proven to work. For better or for worse users expect applications to act and function in a certain fashion. This is not to say that new ideas and concepts can not be worked into applications, it just means be very careful in how a new idea is executed. Users can handle little improvements and enhancements, but creating an entirely new way of doing a familiar task and you run the risk of users dropping your application like a hot potato and going elsewhere, even though you may have a superior application.

So where can one learn how to design for usability? Well there are two options. Option one, trial and error. This will surely be time consuming and costly, yet many developers choose this path for some unknown reason. Option two, learn from someone else's trials and errors. Why not take advantage of the millions of dollars and countless hours that large software companies have spent on usability research and design. Apple and Microsoft have published some exhaustive documentation that is very applicable to RIA usability. For the Flex developer the documentation on all of the different control and container types is very pertinent since these controls are almost identical in look and use to the mx.controls set.


There are also many other great sources of information on the science of usability and most of it is freely available. Here are a few of the better ones I have found on the internet.


For those of you who prefer a good book, here are two good resources.


To quote Peter Parker's uncle Ben

with great power, comes great responsibility
 

I look forward to seeing the next generation of applications built by designers and developers using Flex, Apollo or whatever else comes along, I just hope they use their tools responsibly.

Read SWF height and width with Coldfusion

This is a handy little utility I ran across a while back. It allows you to easily read the width and height properties from an SWF using a Coldfusion component. Thanks to Doug Hughes for creating this.

Here's a sample of the Coldfusion code to use the FlashInspetor component.

<cftry>
	<cfset localFile = ExpandPath( "../samples/rectangle.swf")>
	<cfset flashInspector = CreateObject('component', 'components.FlashInspector').init(localFile)>
	
	<!--- get the flash movie's width and height --->
	<cfset width = flashInspector.getMaxX() />
	<cfset height = flashInspector.getMaxY() />
	<cfoutput>#localFile# <br/><b>width:</b> #width#, <b>height:</b> #height#</cfoutput>
	<cfcatch>
		<cfdump var="#cfCatch#"/>
	</cfcatch>
</cftry>
Click here to see the FlashInspector reading some swfs.

Download the FlashInspector.CFC.