Upload
csarpm
View
222
Download
0
Embed Size (px)
Citation preview
7/29/2019 Adobe - Developer Center - Designing for Flex Part 1- Overview and introduction to Flex.pdf
1/11
Adobe - Developer Center : Designing for Flex Part 1: Overview a... http://www.adobe.com/devnet/flex/articles/fig_pt1_print
of 11 3/3/08 10:36
Flex Article
Designing for Flex Part 1: Overview and introduction to FlexRob Adams
Adobe (www.adobe.comhttp://www.adobe.com)
www.usereccentric.com
Adobe Flex is a new medium specifically created for designing and developing rich Internet applications, or RIAs.
RIAs are a new breed of applications that break out of the constraints of traditional web and desktop environments
to provide a more fluid, information-focused user experience. Flex makes it much easier to create these
experiences, but it requires application designers and developers to think differently about the application design
problem than they did when creating traditional web and desktop applications.
The Designing for Flex series surveys new possibilities, techniques, and challenges designers and developers
will confront when designing Flex rich Internet applications. Specifically, the series covers: planning and
structuring Flex applications, special considerations for designing web versus desktop Flex applications, the
design of rich content displays, appropriate use of motion in application design, improving an applications
efficiency of use, and ensuring your users feel safe using your application and trust it with their data. We have
supplemented the series with an ever-growing set of components and sample code to assist you in applying the
theory presented here. In the near future, we also plan to release the official set of "Flex Interface Guidelines" that
describe in depth how to apply the Adobe standard for Flex application design to your projects.
The Designing for Flex series includes the following articles:
Part 1: Overview and discovering Flex (www.adobe.com/devnet/flex/articles/fig_pt1.html)
Part 2: Planning your application (www.adobe.com/devnet/flex/articles/fig_pt2.html)
Part 3: Structuring your application (www.adobe.com/devnet/flex/articles/fig_pt3.html)
Part 4: Merging the web and the desktop (www.adobe.com/devnet/flex/articles/fig_pt4.html)
Part 5: Designing content displays (www.adobe.com/devnet/flex/articles/fig_pt5.html)
Part 6: Guiding with motion (www.adobe.com/devnet/flex/articles/fig_pt6.html)
Part 7: Making your application fast (www.adobe.com/devnet/flex/articles/fig_pt7.html)
Part 8: Making your application safe (www.adobe.com/devnet/flex/articles/fig_pt8.html)
Appendix A: List of best practices (www.adobe.com/devnet/flex/articles/fig_appendixa.html)
Appendix B: For further reading (www.adobe.com/devnet/flex/articles/fig_appendixb.html)
This content is a public draft. Please give us feedback in the Flex Interface Guide Forum.
Planning for Flex application design is similar to application planning for other mediums, but places special
emphasis on deeply understanding your users goals, the content they use or create, and the tasks and workflows
they go through to accomplish these goals. The next article in this series: Designing for Flex Part 2: Planningyour application (www.adobe.com/devnet/flex/articles/fig_pt2.html) discusses this topic in detail.
Flex applications eschew the strict page-to-page or window-to-window metaphor of the web and the desktop, and
instead focus heavily on interactions within individual screens of the application. As a result, they must be
structured somewhat differently from traditional websites or desktop applications. Flex applications are comprised
of three types of structure: information structures, process structures, and creation structures, all of which must be
designed differently. Structural design is discussed in Designing for Flex Part 3: Structuring your application
(www.adobe.com/devnet/flex/articles/fig_pt3.html) .
7/29/2019 Adobe - Developer Center - Designing for Flex Part 1- Overview and introduction to Flex.pdf
2/11
Adobe - Developer Center : Designing for Flex Part 1: Overview a... http://www.adobe.com/devnet/flex/articles/fig_pt1_print
of 11 3/3/08 10:36
While Flex applications break outside of the constraints of traditional web and desktop applications, they also bring
together the best aspects of these two mediums. Common features of web applications, such as back button
support, bookmarking, and hyperlinks must be preserved on the web just as proper support for the file system,
network connection changes, and windows and menu bars must be preserved on the desktop. In Designing for
Flex Part 4: Merging the web and the desktop (www.adobe.com/devnet/flex/articles/fig_pt4.html) , I discuss
these web- and desktop-specific issues.
Well-designed Flex applications put the users content first, helping her understand and visualize the information,
then provide discoverable means to interact with the content if appropriate. Designing for Flex Part 5: Designing
content displays (available soon) describes how to use the powerful graphical capabilities of Flex to help users
interact with their content.
Flex offers the ability to employ motion as part of the design medium, yet in the past, motion in applications has
often been abused. Designing for Flex Part 6: Guiding with motion (available soon) describes how to use motion
to teach and emphasize, not to distract and annoy.
Computers are intended to improve human productivity, so for any application, efficiency of use is paramount.
Well-designed Flex applications help speed up users both through snappy system performance and through
providing appropriate assistance to help users complete their work faster and easier. Designing for Flex Part 7:
Making your application fast (available soon) discusses both of these aspects of efficiency of use.
Finally, no application is useful or desirable if users cannot trust it with their data and their reputations. Good Flexapplications must carefully safeguard both of these through technical measures and through keeping users
informed of the consequences of their actions and empowering them to undo their mistakes. Designing for Flex
Part 8: Making your application safe (available soon) discusses which measures are necessary to achieve
application safety and earn your users trust.
Flex offers you the opportunity to revolutionize the way your users interact with your application and your
company. Incorporating the best practices discussed in this paper into your design thinking will put you on the
right track towards making this opportunity a reality.
This content is a public draft. Please give us feedback in the Flex Interface Guide Forum.
Discovering Flex
If youre reading this document, chances are youre getting ready to embark on a journey into the world of Flex
application design. Perhaps youre an interface or interaction designer who knows application design inside and
out. Perhaps youre a UI-savvy developer who builds applications that dont just work, but work well. Or perhaps
youre a manager or business analyst who leads application design projects. Whether you come from the world of
the web, the desktop, or are already experienced with Flex, this series offers a solid foundation of knowledge to
apply and extend as you design and develop your next great Flex application.
Flex applications have much in common with their web and desktop predecessors, but they also require a
somewhat unique approach to design. This section covers:
How Flex differs from other technology mediums
Why Flex is an ideal technology for crafting rich Internet applications
Why Flex gives you more freedom, yet requires you to design in a slightly different way than you did forHTML or desktop technologies.
The Flex rich Internet application
7/29/2019 Adobe - Developer Center - Designing for Flex Part 1- Overview and introduction to Flex.pdf
3/11
Adobe - Developer Center : Designing for Flex Part 1: Overview a... http://www.adobe.com/devnet/flex/articles/fig_pt1_print
of 11 3/3/08 10:36
From the very beginning, we designed Flex to be the best platform available for designing and building RIAs. Flex
RIAs enable designers and developers to build applications that break out of the old constraints of the web and
the desktop to deliver experiences that are more useful, usable, and desirable for their intended users. However,
Flex also introduces new design challenges to overcome and new user expectations to meet. These challenges
and opportunities are caused by two aspects of well-designed Flex RIAs:
They blend web and desktop idioms and thus must satisfy user expectations for both mediums.
They open up new design possibilities through their ability to use motion in applications, render content innovel ways, and perform many computations and screen updates directly on the users computer while stillhaving access to all the information services of the Internet.
Flex applications blend the web and the desktop by borrowing the best from both mediums. Most Flex
applications appear on a website, usually alongside traditional HTML content and applications. Users of these Flex
applications have certain expectations of web-ness that goes along with the environment: They expect their
browsers back button to return them to the location theyd been to before. They expect to bookmark sections of
your application and to add hyperlinks to other web pages that connect them directly to that section. They expect
the visual appearance of your application to seamlessly match the branding of the rest of your website. Lastly, they
expect to access your application anywhere, on any computer, regardless of their browser or operating system
software.
Figure 1. The Cotswold Outdoor site is built in Flex and properly supports the browser back button functionality,
a common idiom in web applications.
Likewise, Flex also brings the feel and to some extent the look of the major desktop operating systems to the web.Flex provides out-of-the-box implementations of advanced desktop controls such as tabs, sliders, trees, and data
grids as well as advanced desktop idioms such as drag and drop, direct selection, and in-place validation. Because
these controls and idioms are readily available and consistently implemented, users come to expect a richness of
interaction that they might not from a traditional website. More information on how to design an application that
blends these two mediums is available in Designing for Flex Part 4: Merging the web and the desktop
(www.adobe.com/devnet/flex/articles/fig_pt4.html) .
7/29/2019 Adobe - Developer Center - Designing for Flex Part 1- Overview and introduction to Flex.pdf
4/11
Adobe - Developer Center : Designing for Flex Part 1: Overview a... http://www.adobe.com/devnet/flex/articles/fig_pt1_print
of 11 3/3/08 10:36
Figure 2. Adobe Premiere Express implements many desktop idioms such as drag and drop, yet lives in the
browser as a web-based Flex application.
Flex opens up new design possibilities by enhancing standard web browsers with the Adobe Flash technology on
which Flex is built. This technology is now available in two compatible runtime environments: Adobe Flash Player,
a browser plug-in that is installed on 98% of the worlds internet-connected PCs; and Adobe AIR, a runtime that
allows Flex applications to exist on the users desktop outside the confines of a web browser. Both runtimes
provide a set of powerful, time-tested tools that open up new possibilities for web and desktop application design.
These tools include:
Powerful drawing and media APIs for using vector graphics, bitmap graphics, and high-quality video to buildrich information displays for your application. Popular examples include the stock charts on Google Finance
and the interactive video player on YouTube. More information on using these tools to help users
understand and interact with their information appears in Designing for Flex Part 5: Designing content
(coming soon).
Built-in support for motion and effects effects that creates new ways to guide users and provide meaningful
feedback. Ill discuss this further in Designing for Flex Part 6: Guiding with motion (coming soon).
A modern code execution engine that is powerful enough to enable hard-core developers to build any
application behavior they wish, yet has its roots in a simple scripting language that empowers evennon-programmers to express their ideas in code. This engine enables designers and developers to make
use of the users computer, rather than the server, for many processing tasks involving validating data,safeguarding information, and caching results to reduce latency. More information on these topics appears
in Designing for Flex Part 7: Making your application fast (coming soon) and Designing for Flex Part 8:
Making your application safe (coming soon).
7/29/2019 Adobe - Developer Center - Designing for Flex Part 1- Overview and introduction to Flex.pdf
5/11
Adobe - Developer Center : Designing for Flex Part 1: Overview a... http://www.adobe.com/devnet/flex/articles/fig_pt1_print
of 11 3/3/08 10:36
Figure 3. YouTube and Google Finance employ Flash technology for their video player and interactive stock
charts to help users better understand the information they offer than a standard HTML page could on its own.
These changes to the underlying technology and environment enable you to communicate with your users in new
and exciting ways. However, they also require you to think a bit differently than you did when designing for othermediums. The following sections compare Flex with other popular client-side technologies to illustrate how this is
so.
Flex and HTML
Since its beginnings as a simple markup language for hypertext documents, HTML has followed a model of
"pages" and links between pages. Content flowed from the top to the bottom of the page. Markup tags defined
the meaning of various blocks of contentspecifying them as headers, paragraphs, images, and so forth.
Although web designers pushed the envelope to create complex static layouts in HTML, they did little to change
the basic page-to-page model until the rise of AJAX.
The typical thought process for designing HTML-based web sites and applications closely mirrors this
pages-and-hyperlinks model. Designers tend to create single pages and organize them into information
hierarchies for users to navigate. Traditionally, they rarely thought much about interactions within a page because
this was prohibitively difficult to achieve in the medium. This forced them to rely on potentially slow page reloads
whenever they needed to update the screen. However, the pages-and hyperlinks model has its advantages as
well: it is quite simple, maps well to web browser s navigation models, and is already well understood by most
computer users today.
7/29/2019 Adobe - Developer Center - Designing for Flex Part 1- Overview and introduction to Flex.pdf
6/11
Adobe - Developer Center : Designing for Flex Part 1: Overview a... http://www.adobe.com/devnet/flex/articles/fig_pt1_print
of 11 3/3/08 10:36
(www.adobe.com#)
Figure 4. A site map of a traditional HTML website (left) contrasted with a structural diagram of a Flex application
(right). Note that the Flex application relies on providing more functionality within one screen instead of organizing
content into a hierarchy of pages. Click for a larger view (www.adobe.com) .
Although Flex applications also commonly have multiple top-level pages or sections, unlike HTML many more ofthe interesting interactions occur within a page rather than between them. Thus, Flex requires designers and
developers to think more deeply about how the page itself will change in response to user input. At the same time,
its important to maintain the simplicity of the page model as you employ these interactions to improve the user
experience.
With the advent of AJAX, some of these same concerns are now present even in HTML application design, and
thus some of the guidance found in this document applies to the HTML medium as well. However, since AJAX is
typically used to enhance existing HTML pages with small bits of rich interactive functionality, most HTML
designers are generally not required to think as deeply about the intra-page interactions as are Flex application
designers. However, these very interactions are what make Flex (and AJAX) applications so compelling. When
used effectively, these technologies make it much easier for users to manipulate the application to accomplish
their goals. More details on how intra-page interactions affect the structure of Flex applications appear in the
chapter Designing for Flex Part 3: Structuring Your Application
(www.adobe.com/devnet/flex/articles/fig_pt3.html) .
7/29/2019 Adobe - Developer Center - Designing for Flex Part 1- Overview and introduction to Flex.pdf
7/11
Adobe - Developer Center : Designing for Flex Part 1: Overview a... http://www.adobe.com/devnet/flex/articles/fig_pt1_print
of 11 3/3/08 10:36
Figure 5. Most web applications employ AJAX to incorporate small pieces of rich interactive functionality in a
mostly traditional HTML page, such as the rating and commenting widget in the Flex Cookbook(left).
Figure 6. On the other hand, Flex applications such as Flex Store
(www.adobe.com/devnet/flex/samples/flex_store/) consist almost entirely of rich interactive functionality blended
together into a seamless user experience.
Flex and desktop clients
Before the rise of web application development, desktop-based fat clients were the most popular way to design,
7/29/2019 Adobe - Developer Center - Designing for Flex Part 1- Overview and introduction to Flex.pdf
8/11
Adobe - Developer Center : Designing for Flex Part 1: Overview a... http://www.adobe.com/devnet/flex/articles/fig_pt1_print
of 11 3/3/08 10:36
develop, and deploy internet-enabled applications, and they are still used for many projects today. Desktop clients
typically followed the WIMP style of user interface design (Windows, Icons, Menus, Pointing devices), and they
were generally built using desktop user interface toolkits such as MFC, Cocoa, or Java Swing. They aggregated
clusters of user interface controls or widgets (such as buttons, checkboxes, sliders, and data tables) into various
application windows in which users could view their data and perform tasks by interacting with the widgets or the
ubiquitous menu bars that appeared at the top of the window or the screen. For the designer, the primary
question was how to use this palette of controls to lay out windows that would make sense to the user and help
her accomplish her goals.
Figure 7. An example of a traditional fat client desktop application. Most of the interface consists of the standard
controls defined by the platforms toolkit, in this case Microsoft Windows.
Like desktop client technologies, Flex provides a rich set of standard user interface controls. Unlike desktop
technologies, Flex also provides access to the rich graphics and motion capabilities of the Flash Player, enabling
designers and developers to extend the framework in myriad ways through custom artwork, motion, and
interactivity. This enables designers to craft experiences that provide richer and more interactive visualizations of
the users data than can be achieved with a standard control palette alone.
Most desktop user interface toolkits have a strong notion of window management that is closely tied to the host
operating system. Most Flex applications, however, eschew windows altogether as window-based interfaces are
not expected on the web and for most web applications the benefits of multiple windows are outweighed by the
time the user must spend flipping between and arranging them. (This is not true of Flex applications that target the
Adobe Integrated Runtime (AIR). However, even Adobe AIR applications typically do not rely as heavily on multiple
window support as traditional desktop applications do.) Instead, Flex favors integrating functionality that would
ordinarily be spread across multiple windows into one seamless experience. The combination of the visual
expressiveness of the Flash Player and the lack of window management requires us to think less in terms of
arranging controls on the screen and more in terms of visualizing information for the user and letting her interactwith that information in ways that will help her accomplish her goals.
Flex and traditional Flash
Understanding the difference between Flex and traditional Flash content created using the Adobe Flash
authoring tool is often a challenge, mostly because they are both "Flash-based" technologies that are built on top
7/29/2019 Adobe - Developer Center - Designing for Flex Part 1- Overview and introduction to Flex.pdf
9/11
Adobe - Developer Center : Designing for Flex Part 1: Overview a... http://www.adobe.com/devnet/flex/articles/fig_pt1_print
of 11 3/3/08 10:36
of the same core technology, Adobe Flash Player.
Figure 8. Homestar Runner is a popular example of a traditional Flash site that is oriented around a narrative, the
original target for the Flash authoring tool.
However, Flex and Flash differ dramatically in their models for design and development. Flash designers and
developers created traditional Flash content around a time and animation metaphor; they built narratives to teach
concepts, advertise products and services, or simply to tell stories for their own sake. (The humor site "Homestar
Runner" is one of the more popular examples of storytelling for its own sake.) As the interactive development
capabilities of the Flash Player became more powerful, some Flash gurus were able to push the envelope of the
technology and create larger, more data-rich Flash experiences that rivaled the complexity of traditionalapplications, and thus we coined the term "Rich Internet Application" or "RIA" to describe these experiences.
However, due to the inherent limits of the Flash tools and technology of the time, building complex applications
that supported many user flows, interacted heavily with large amounts of user data, and required the support of
large teams for long-term support and maintenance was prohibitively difficult and expensive. Thus, most traditional
Flash content has remained focused on media and storytelling on the web.
The Flex framework provides a more application-focused method of designing and developing RIAs that are
deployed to the web or on the desktop. Unlike Flash, the primary organizing metaphor of Flex is not time and
animation, but screens and states. Time and animation are still first-class citizens in Flex, but they are used instead
to guide the user from one state transition to the next. Designers use motion in Flex to provide visual effects to
improve user comprehension through feedback, not to organize the entire user experience as an interactive
movie. Thus designing a Flex application is more like designing a traditional HTML or desktop application at the
high level, but allows developers and designers to use the motion powers of Flash to make their application more
fluid and seamless.
7/29/2019 Adobe - Developer Center - Designing for Flex Part 1- Overview and introduction to Flex.pdf
10/11
Adobe - Developer Center : Designing for Flex Part 1: Overview a... http://www.adobe.com/devnet/flex/articles/fig_pt1_print
0 of 11 3/3/08 10:36
Figure 9. The linear animation model of Flash authoring contrasted with the nonlinear states model of Flex. The
states model tends to work better for applications due to the many paths users can take through the system.
Despite these differences, Flash and Flex are both part of the same platform and thus are capable ofinteroperating. If sections of an application make more sense to build using the animation-focused approach of the
Flash authoring tool, you can do this and integrate them into your Flex applications as first-class citizens. Whether
you have existing Flash content you want to use in a Flex application or simply prefer the Flash authoring tool for
the job at hand, this interoperability means that deciding on Flex doesnt mean deciding against Flash.
With great power comes great responsibility
By now you have seen how Flex differs from the user interface technology mediums that came before it. You have
tasted its power and flexibility (no pun intended) and seen how designing applications that target the Flex
framework requires thinking a little bit differently than you might be used to doing when designing applications for
other mediums. However, it is always worth remembering that while Flex opens up whole new ways tocommunicate with your users and assist them in accomplishing their goals, it also introduces new potential
stumbling blocks to watch out for. It behooves all of us, whether we are designers or developers, to use the power
of this new medium effectively for the benefit of our users and our businesses. The articles in this series explain
how to do just that.
To learn more, read the next part of the series: (www.adobe.com/devnet/flex/articles/fig_pt3.html) Part 2:
Planning your application (www.adobe.com/devnet/flex/articles/fig_pt2.html) .
This content is a public draft. Please give us feedback in the Flex Interface Guide Forum.
Acknowledgements
Although this article series has my name on it, many people contributed to its development. Id like to thank my
reviewers, Sho Kuwamoto, Phil Costa, Steven Heintz, Narciso Jaramillo, Josh Ulm, Jeremy Clark, Deb Galdes, Tom
Hobbs, and Amy Wong for providing me with extremely helpful feedback. Special thanks to Sho Kuwamoto and
Phil Costa for envisioning this project and pushing me to complete it and to my managers, Josh Ulm and Jeremy
Clark, for finding the time for me to give it the attention it needed. Finally, extra-special thanks to Tom Hobbs,
Narciso Jaramillo, Sho Kuwamoto and Peter Flynn for guiding my thinking on many of the topics that appear in the
articles.
7/29/2019 Adobe - Developer Center - Designing for Flex Part 1- Overview and introduction to Flex.pdf
11/11
Adobe - Developer Center : Designing for Flex Part 1: Overview a... http://www.adobe.com/devnet/flex/articles/fig_pt1_print
1 of 11 3/3/08 10:36
This work is licensed under a Creative Commons Attribution-Noncommercial 3.0 Unported License.
About the author
Rob Adams works for Adobe Systems, Inc. in San Francisco, California. He started at Macromedia, Inc. in 2004 and
has worked on the Flash authoring tool, Flash Player, and Fireworks, but nowadays works primarily on the Flex
product line. He is involved with the design of the core framework itself as well as the designer/developer tools
such as Flex Builder and Creative Suite. Although his primary focus is on design research, he also does some
design work, promotes sound design practices both within Adobe and without, and makes himself a general pain
in the necks of the designers, product managers, and engineers he works with.
Copyright 2008 Adobe Systems Incorporated. All rights reserved.