Setting selected text background color in an Adobe AIR application

April 20th, 2009

bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark

Recently, our team was faced with a challenge of changing the selected text background color in an application of Adobe AIR. We tried to search for a solution and stumbled upon a solution that lead to http://labs.hellokeita.com/2008/03/13/textfield-selection-color/ 

After adapting a fair amount of code, we have developed a component that works for us. The component allows the Flex/AIR developer to select the text color and the background selected color. The background selected color creates a transparency effect, hence if black is used, the selected color would be grey.

The component works only for Adobe AIR and not for Flex :( . I am looking at finding something similar for Flex, till then we will have to be satisfied with black, the current background selected color for Flex.

The source files for the AIR application can be downloaded here.

bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark

Adobe AIR, Flex, RIA

Challenges to designing web apps (RIAs)

December 31st, 2008

bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark

Ajax, Adobe Flex and Microsoft Silverlight have changed the web app landscape which is at the crossroads of growth and evolution. In this article, we examine web app usability as a key element of developing successful web apps.

Basics of Web App Usability
Usability is all about the user’s acceptance of the application as the right way of accomplishing the tasks. There have been many challenges in web app usability are because web apps are half desktop applications and half websites.

The following are the key challenges from a web app’s usability perspective
1. Navigation
Web apps need to clearly identify what type of navigation they are using.

Conventionally, users are used to the mental model of web page navigation including the hyperlinks, the back button, navigation out of a site with a hyperlink.

Bruce Tognazzini says that the web is an invisible navigation space and the user is unable to see anything of the vast spaces between pages. Hence, a web app should have a well defined navigation where the user can understand, comprehend and complete each task easily.

Each web app has to choose its navigation model whether it needs to be web oriented (eg. Facebook and other social networking apps) or it needs to be desktop like (Scrapblog, etc). Donna Maurer argues that if the web pages model is broken by an RIA, the interface should be such that users can clearly identify the navigation model that the RIA uses.

Key elements to be considered in navigation include
a. Back button / Full Screen mode
Users believe that the back button gives them control over the Internet and it is best to let it happen that way.

Opening the application in full screen mode and disability the traditional browser buttons indicates a direct defiance of the traditional web model. This challenge should be taken only if the users are going to find the application significantly useful and are willing to rise up the navigation curve to explore. Also it is usually a good idea to develop such applications for a niche segment rather than the mass market as users may need guidance.
RetouchMAX, a photo retouching services provider, has successfully used this approach and its users are comfortable with the added disadvantage of a new browser window opening up as it reduces the application turnaround time for service.

b. Refreshing part of a screen
Updating a part of the screen rather than reloading the page is a good idea provided the user understands what is happening in the application. Users find Amazon’s new designs incorporating customer review ratings in Ajax as cool.

2. Undo, Redo, Save, Autosave Features
Users may or may not expect undo or redo features based on their perception of the application. If the application has an undo and redo feature, usually it is in direct conflict with the back button. There should be a clear understanding of what features are undoable, which are redoable and how the user can use these features.

Desktop applications give the facility to save and backup files and folders as part of the operating system. Desktop applications also have a “Save as” or versioning of the application files. These facilities are not directly available in web apps. Where the web app is emulating a traditional desktop based app, the ability to autosave, save as a different version, backup and restore can be quite important.

From a usability perspective, the challenge is to create an interface that is consistent and enables the user to quickly learn to utilize these facilities of web apps.

3. Use of cues
Desktop applications are standardized in terms of the menu design and functionality, whereas web apps are not as consistent. The usage of the application should be clear to users, and where they may be some chances of confusion, there need to be enough visual cues to clarify the functionality of the task.

Perceptual Cues can also accelerate the discovery and use of hidden functionality to the users. Perceptual cues can be in terms of change of mouse cursors, hover effects like color change, small tooltip, highlighting of borders on mouseover for draggable components, title highlighted by a different color and bold sign, etc.

Standards for web apps are evolving and following pattern libraries like Yahoo design pattern library may improve the chances of user acceptance as many applications would use these.

4. Multi user collaboration
The single differentiator between web and desktop is interconnectivity within users. Most of the web applications share more data between users in comparison to desktop applications. E.g. BaseCamp allows project collaboration of remote teams, not easily possible with Microsoft Project, users share google documents, Salesforce enables online CRM, and social networking platforms.

Users expects to know what information will be shared and to whom. Web apps need to clearly identify the levels of users, how user personal and other details will be shared, what level of control the user has regarding that, etc. For example, in SlideShare, the presentation that I make can be shared to my contacts, the general public or by myself only. I can also delete the presentation at any time and others can comment on my presentation.

5. Differentiation with desktop applications
Web apps should NOT ape desktop applications, especially in design. The argument is aptly described by Bill Higgins in his article “the Uncanny Valley of user interface design” where he describes that minor deviations in web apps from the desktop counterparts would be amplified if the web apps resemble their desktop versions. He has given the example of Zimbra mail being quite like Outlook, but not exactly like it and hence being disliked. On the contrary, gmail is refreshing different than Outlook.
EBay developed a desktop application based on Adobe AIR to enable users to use the app as an alternative medium. The application has been redesigned from the start and is not a “Me too” of the EBay site.

bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark

RIA Design

RIA Designing

December 6th, 2008

bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark

RIA Designing is quite different from traditional web application design. RIA designers have the ability to create innovative user interface to enhance application utility. A well designed RIA should have the following elements

1. Pleasing user experience
RIAs facilitate the user by creating a higher amount of interactivity between the application and the user. The user’s attention span can be increased by providing innovative functionality. This results in a seamless and pleasing experience for the user while using the RIA.

2. High on user functionality
RIAs designers should not get away in designing spectacular effects, the user should be able to complete key tasks effectively. The application’s different modules should be seamlessly integrated by a well thought navigation system.

3. Screen Real Estate Utilization
The screen’s real estate should be well utilized by effective display of key tasks, guiding the user the process (eg. Highlighting checkout buttons after the shopping process), helping the user through the tasks (effective tooltips) .

4. Incorporate Brand Attributes
For interactive websites and widgets, one of the important reasons of choosing an RIA is to improve the brand perception. In this case, the designer should focus on highlighting and enhancing the brand attributes through the RIA.

Design Process

RIA design process involves the following steps

1. Requirements Understanding
In this stage, the client, the project manager and the designer understand the idea and requirements of the RIA. The desired application functionality, the application domain, and the end user profile are discussed.

2. Wireframe design
The designer creates a wireframe of the key application screens highlighting the functional aspects of the application. The same is reviewed and modified based on client feedback.

3. Mockups
The designer adds his expertise in the form of colors, effects, etc to the wireframe and creates designs that will enable the client to visualize the application.

4. Design Finalization
Upon client agreement, the design is finalized and the application goes into further development

bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark

RIA Design