SlideShare ist ein Scribd-Unternehmen logo
1 von 90
Downloaden Sie, um offline zu lesen
Ajax
                            The Big Picture

                            Andre Charland
                            CEO and Co-Founder Nitobi
Tuesday, December 4, 2007                               1
About Me
        -    Andre Charland
        -    Nitobi -Founder, President
        -    Author of Enterprise AJAX for Prentice Hall
        -    AJAX Experts
        -    10 Employees
        -    Founded in Vancouver, 1998
        -    100s of AJAX Customers



Tuesday, December 4, 2007                                  2
Tuesday, December 4, 2007   3
-    Ajax User
            Interface
            Component
            suite (9)
       -    Cross
            platform
             -   Java
             -   ASP.NET/ASP
             -   PHP
             -   Coldfusion
Tuesday, December 4, 2007      4
-    Enterprise Web Systems Development
             -   UI Visioning and development
             -   Intranets
             -   ‘In the eld’ web systems


       -    Consumer Web Systems Development
             -   Web strategy
             -   Application development


Tuesday, December 4, 2007                        5
Rich Internet Applications
            -   AJAX
            -   Java
                 - WebStart
                 - Applets
                 - JavaFX
            -   Flash
            -   Flex
            -   Silverlight / WPF
            -   Adobe Integrated Runtime (AIR)

Tuesday, December 4, 2007                        6
Restlet
                                                                   

                                                                       SWATO
                          AJASON                                   
                      
                                                                                      AjaxCFC
                                          IWF
                                   
                                                                        Tacos
                          aSSL                                     
                      
      PHPLiveX                            Zimbra AjaxTk                               JSMX
                                     
                                                                        Telosys
                          AjaxAC                                   
                      
      Picora                              JuiseLib
                                     
                                                                        ThinkCAP JX
                                                                                      WDDXAJ
                          Ajax Agent                               
                      
                                          AjaxCaller
      Qcodo                           
  
                                                                        Wicket
                          Cajax                                    
                      

                                                                        WidgetServer  Akelos
      sniPEAR                             AjaxGears
                                     
                          Claw                                     
                      

      Symfony                             AjaxToolbox                             Cajax AModule
                                                                        Wonder
                                     
                          FURIA                                    
                                                                                     
                                                                             



                          AJAX Frameworks
      PAJAX                               AJFORM                        XANDRA Claw
                          Guava                                    
                                     
                      
                                                                                      AJASON
                                                                              

                                                                        xWire 
      PAJAJ                               Jx/jxs
                          HTS                                      
                      
                                                                                FURIA
                                                                                  Guava aSSL
                                                                                     
                                                                        ZK
                          jPOP Gaia Lokris                       
                                                     Google Web Toolkit
      Tigermouse            
            -
                                                                             
             Dojo         JPSpanAjax.NETMAJAX                                     HTS AjaxAC
      XOAD                                                                  
                                                                                   
                                                  Mochikit
            -
      Zephyr Adobe Spry My-BIC Ajaxium RSLite                                     jPOP
                                                                            
                                     
                                                                                      Ajax Age
                                          Sack  Yahoo User Interface
                          Kumbia`Anthem.NET
                      
                                                                                  JPSpan
                             
            -
      ADF                                                                     
             Script.aculo.us AjaxAspects
                                     
                                                                Cerny  My-BIC
                                                     Library
       Rico                              UniAjax Rails-supported
      ADL
                                     
            -Prototype           Bitkraft                                         Kumbia
                             
                                                  Direct Web Remoting
                                                                EXT
                                                                              
       ASP.NET Ajax (Atlas)  XHConn             Sarissa
                                 ComfortASP.NET                            NanoAjax
                            
            - Moo.fx                                                         
                                                  (DWR)                    Noculo MOJO
                                                                              
                                                                JackBe
        CakePHP                                 SAJAX
                                 emergetk
                                                                            

                                                 JQuery
 SmartClient                    FastPage                                  PHPLiveX
                            
        AjaxTags                                XAJAX
                                                                             
                                                                Javeline
                                                                           Picora Zapate
                                                                              
                        Ajax Client
                                 MagicAjax.NET
                                                                            

        Django                                  Rialto        JsLINB
 Subsys_jsHttpReques            mxAjax                                    Qcodo
                            

                          Engine
                                                                             

                                                                               Compo
                                                                           sniPEAR
                                                                             
        Nitobi                                  Telerik       JsRia
    t                   Ajax Queue Class
                                                                           PAJAX ne
                                                                           Symfony
                                                                             

        Backbase                                Infragistics
                                                                Macao       
 ThyAPI                Lumberjack
                                                                               Farpoi
        TIBCO                                   IceSoft                  PAJAJ
                                                                             
                                                                OpenLink Tigermouse
        Nexaweb JSLog
                                                                             
 TIBET                                         ActiveWidgets
                                                                Plex Toolkit 
                                                                                  DevEx
                                                                           XOAD
                                                                             

        Laszlo  jsTracer                       Dart
 twoBirds                                                      Qooxdoo
                                                                               Janus
                        CAPXOUS
Tuesday, December 4, 2007                                                             7
Technology Growth




Tuesday, December 4, 2007   8
Users First
        -    Nothing else matters
        -    The interface is the application




Tuesday, December 4, 2007                       9
Usability
            “Usability is a term used to denote the ease
            with which people can employ a particular
            tool or other human-made object in order to
            achieve a particular goal”

                    -   Helping users achieve their goals
                    -   With great power comes great responsibility
                    -   Helping users kick ass!
Tuesday, December 4, 2007                                             10
Factors
        -    Learnability
        -    Memorability
        -    E ectiveness
        -    E ciency
        -    Satisfaction ;-)


Tuesday, December 4, 2007                 11
Bene ts
        -    Higher rates of task success
        -    Happier users
        -    More efficient users
        -    Saving time for users
        -    ROI


Tuesday, December 4, 2007                   12
Why RIA?
       -    User Retention
       -    Brand Development
       -    User E ciency
             - Steps to complete a task
             - Training costs
             - Uninterrupted work ow
             - Time spent waiting*
Tuesday, December 4, 2007                 13
http://www.developer.com/java/other/article.php/
 3554271




                                                    SAVINGS
                                                    32%
Tuesday, December 4, 2007                                     14
Financial ROI
                        Hourly (Loaded)
                          Labor Rate
                              X
                  Time Saved per Transaction
                              X
                Number of Transactions per year

Tuesday, December 4, 2007                         15
Run the numbers...
        Assumptions:
          Hourly Labor Rate: $20
          Seconds Saved per Transaction: 36 Seconds
          Number of Transactions per year: 50,000
        Savings:
          $10,000
          500 Person Hours



Tuesday, December 4, 2007                             16
Usability Testing
        -    Doesn’t have to expensive
        -    Has to be done
        -    What to test:
              -   Time for task completion
              -   Accuracy (# of mistakes
              -   Recall
              -   User satisfaction
Tuesday, December 4, 2007                       17
Usability Testing: How to do it
        -    Recruit users
        -    Design scenarios
        -    Participant Narration
        -    No egos
        -    Record the session
        -    Test small, test often
Tuesday, December 4, 2007                   18
Usability Testing Resources
        -    User Interface Engineering by Jakob
             Nielsen
        -    Ethnio - remote testing services
        -    Usability.gov



Tuesday, December 4, 2007                          19
Usability Data
        -    Microsoft designed the new office UI,
             the ribbon, based on lots of data
        -    1.2 billion data sessions collected
        -    ~1.8 million sessions per day
        -    In 90 days, they tracked 352 million
             command bar clicks in Word
        -    Tracked 6000 individual datapoints
Tuesday, December 4, 2007                            20
Analysis Tools
        -    RobotReplay
        -    Adobe Connect
        -    Google Analytics (Events)




Tuesday, December 4, 2007                    21
Google Analytics Demo




Tuesday, December 4, 2007                   22
RobotReplay Demo




Tuesday, December 4, 2007                      23
Connect Demo




Tuesday, December 4, 2007                  24
Ajax Pitfalls
        -    Back Button
        -    Bookmarking
        -    Confusion
        -    Performance



Tuesday, December 4, 2007                   25
Broken Back Button




Tuesday, December 4, 2007                        26
What Users Expect




Tuesday, December 4, 2007                       27
Fix
        -    #
        -    Build a state record
        -    GWT




Tuesday, December 4, 2007           28
Performance
        -    Perceived vs Real
        -    User perceptions are more important
              -   Task complexity
              -   Jitter (variability of latency)
              -   Wait time



Tuesday, December 4, 2007                           29
Page Weight
        -    For Example
              -   HTML size—10 KB
              -   JavaScript attachments— 45 KB
              -   Size of all images—25 KB
              -   Total Page Weight—80 KB
        -    Average download time
              - with 56-K modem: 13.3 seconds (6 KB per second)
              -   With DSL connection: 2.67 seconds (30 KB per second)


Tuesday, December 4, 2007                                                30
Wait Time Guidelines
        -    <1 Second - Don’t worry
        -    1-10 Seconds Activity indicator
        -    >10 Seconds - Progress Bar


        -    Favor Usability over Page Weight


Tuesday, December 4, 2007                       31
Technical Performance Tips
        -    Take advantage of Caching
        -    Reduce File Count
        -    Optimize JavaScript
        -    gZIP JavaScript and CSS
        -    More resources
              - Y Slow
              - High Performance Websites
Tuesday, December 4, 2007                   32
Tuesday, December 4, 2007   33
Accessibility
        -    You can’t have usability without it
        -    Helping impaired users
        -    Not just blind (more vocal)




Tuesday, December 4, 2007                          34
Automation
        -    Generally doesn’t work with Ajax
        -    Wrong assumptions
        -    Dynamic and changing pages




Tuesday, December 4, 2007                       35
Accessibility Barriers
                             Sight    Keyboard & Mouse
                            Hearing       Text Only
                      Movement           Connection
                     Information         Language
                      processing
                       Reading          Distractions
                 Comprehension            Browser
Tuesday, December 4, 2007                                36
Challenges
        -    W3C says should work without without JS
        -    Focus is on screen readers
              -   Jaws
        -    Graceful degradation doesn’t cut it
        -    Come back with reader X doesn’t cut it


Tuesday, December 4, 2007                              37
Screenreaders: Jaws
        -    Jaws is the primary screen reader on the
             market
        -    Based on IE
        -    Alternatives: Windows Eyes, Hal, Home
             Page Reader


Tuesday, December 4, 2007                               38
How Jaws Works
        -    Virtual Bu er
        -    Snapshot of DOM
        -    2 Modes
              -   “Virtual PC Cursor Mode” is standard
              -   “PC Cursor Mode” is needed for Ajax
        -    Older versions IE only
        -    Jaws 7.0 works with FireFox
Tuesday, December 4, 2007                                39
Keyboard Accessibility
        -    Minimize swapping between input
             devices
        -    Keyboard Accessibility for everybody
        -    Conform to accepted standards
              -   MS Windows UE Guidelines (http://msdn.microsoft.com/library/
                  default.asp?url=/library/en-us/dnwue/html/ch08c.asp)


        -    Test with MS Object Inspector
Tuesday, December 4, 2007                                                        40
Tree Guidelines
        -    Use Arrow Keys
        -    Up and Down move between items
        -    Left and right move along a branch
        -    Right arrow can expand a branch
        -    Left arrow collapses or moves to parent
        -    Enter selects the contents of a node
Tuesday, December 4, 2007                              41
Random Walk Example
        -    Ely Green eld’s sample




Tuesday, December 4, 2007                  42
Jaws Protected Strokes
        -    Ctrl: stops the reader
        -    Ctrl + Home: restart reading from the top
        -    Down Arrow: read the next line
        -    Enter: Activates a link or button



Tuesday, December 4, 2007                                43
Use Common Sense
        -    Don’t barry popular options in tabs
        -    Use tab order with tabindex
        -    Copy popular desktop and web apps
              -   i.e. Outlook, Gmail, etc..




Tuesday, December 4, 2007                          44
Break




Tuesday, December 4, 2007           45
Design and Patterns




Tuesday, December 4, 2007                         46
Design Techniques
        -    User interface patterns
        -    Mock Ups
        -    Paper Prototypes
        -    Keep it simple
        -    Familiar vs. intuitive


Tuesday, December 4, 2007                       47
Tools
        -    Tools and techniques for rapid prototyping
              -   Storyboard
              -   Wire frames
              -   Visio
              -   Power Point
              -   Photoshop
              -   Flash/Flex
              -   Axure
              -   ProtoScript
Tuesday, December 4, 2007                                 48
Mock Ups




Tuesday, December 4, 2007              49
•http://www.boxesandarrows.com/view/
                            storyboarding_rich_internet_application
                            s_with_visio

Tuesday, December 4, 2007                                             50
Tuesday, December 4, 2007   51
ProtoScript




                            www.ProtoScript.com


Tuesday, December 4, 2007                         52
RIA Dev Team
        - Project Manager
        • Designer
        • UX/Usability/UI
        - Front End Developer
        - Back End Developer / Integrator
        - Testing / QA
Tuesday, December 4, 2007                   53
Words of Wisdom

            “If you think you need something never created
            before, think twice about it” - Bill Scott




Tuesday, December 4, 2007                                    54
Patterns
        -    Same Problem, Same Solution
        -    Applications
        -    Problems solved
        -    Pitfalls



Tuesday, December 4, 2007                  55
Design Tips
                  1. Make it directly interactive
                  2. Make it inviting
                  3. Use lightweight, in-context popups instead of page transitions where
                     possible
                  4. Use real-estate creatively
                  5. Cross page boundaries reluctantly
                  6. Create a light footprint
                  7. Think of your interactions as storyboards
                  8. Communicate transitions
                  9. Think in objects
                                http://looksgoodworkswell.blogspot.com/2006/01/nine-tips-for-designing-rich-internet.html

Tuesday, December 4, 2007                                                                                              56
Drag and Drop
        -         Use When
              -       you want to manipulate a natural visual model of objects
        -         Potential Pitfalls
              -       starting with drag & drop
              -       using it to set a single attribute
              -       constructing arti cial visual constructs
              -       using it for removal
              -       confusing drag ghost with drag object
              -       user’s don’t get it
              -       creating page jitter
Tuesday, December 4, 2007                                                        57
Progress Bars
      -         Use When
            -      needing to show upload status
      -      Possible Pitfalls
            - non-accurate progress indication
      -         Best Practices
            -      place the indicators as close to the le names as
                   possible
            -       nish with “completed” status if displayed in grid...
                   otherwise nish with status and fade out

Tuesday, December 4, 2007                                                  58
Activity Indicators
        -         Use When
              -        need to show system is processing
              -        want to show indication in context
        -         Possible Pitfalls
              -        can be distracting if not necessary
        -         Best Practices
              -        place the busy indication as close to the use input as possible
              -        use small animated indicator beside input or inside input eld
              -        place the busy indication at the place where the results will appear
              -        use an overlay with translucency if redirecting attention
              -        don’t use too many indicators as it will make for a noisy interface
              -        avoid using indicator if delay is really short (<1 Sec)
Tuesday, December 4, 2007                                                                     59
Fading and Color Changing
        -         Use When
              -       need to spotlight a change occurred
        -         Possible Pitfalls
              -       if too many places, can be distracting
        -         Best Practices
              -       use in just one or two selected areas
              -       if more, make sure that there aren’t too many updating at once
        -         if area is large, consider more subtle coloring
        -         fade out quickly (usually less than one second; but much faster is
                  acceptable)
Tuesday, December 4, 2007                                                              60
Rollovers
        -      Use When
              - need to show detail in context
        -      Potential Pitfalls
              - popup too quick
              - popup too slow, seem sluggish
        -      Best Practices
              - show detail after 0.25 second delay
              - dismiss immediately on mouse out or click
Tuesday, December 4, 2007                                   61
In-Place Editing
        -      Use When
              - item being edited is multi- eld
              - you want to be explicit about the edit mode
        -      Potential Pitfalls
              - discoverability
              - too subtle of invitation
              - clutter visual display w/ invitations
              - making page jump
Tuesday, December 4, 2007                                     62
Master Detail
        -         Use When
              -      Browsing relational data
        -         Possible Pitfalls
              -      Confusing to user
        -         Best Practices
              -      Drill Down
              -      Keep it light
              -      Provide indicator during wait

Tuesday, December 4, 2007                            63
Live Search
     -         Use When
           -       user needs to search for content and are
                   uncertain on the correct keywords.
     -         Potential Pitfalls
           -       if results are returned too quick, will be
                   distracting
           -       if results are not returned quick enough, it
                   will feel sluggish
     -         Best Practices
           -       start returning results when the user “slows
                   down” typing
           -       show results below text entry eld for
                   feedback
Tuesday, December 4, 2007                                         64
Live Scrolling
        -    Use When
              -    chunking data would a ect user ow
              -    content is data; not search results
              -    data content will be sorted, ltered, etc.
              -    selection model is continuous
        -    Potential Pitfalls
              -    dual-scrollbar issue
              -    sluggish performance
              -    extremely large data sets
        -    Best Practices
              -    provide dynamic tooltip showing location within scroll
              -    animate scroll
Tuesday, December 4, 2007                                                   65
Live Form
        -         Use When
              -       User entered data needs to be validated on the y and cannot be checked
                      locally
        -         Best Practices
              -       Generation of new elds is required
              -       Validation and feedback from the server is needed
              -       Removing or disabling parts of the form
              -       Submitting data to the server before completion
              -       Server side validation without refresh




Tuesday, December 4, 2007                                                                      66
Invitation
        -    Use When
              -   You want to invite the user to click or interact with the object being
                  hovered over.
        -    Potential Pitfalls
              -   discoverability
        -    Best Practices
              -   use hover to reveal interaction
              -   use the familiar to teach the new
              -   use tours sparingly
              -   think of how it will interact with rest of page
Tuesday, December 4, 2007                                                                  67
Auto Complete
        -    Use When
              -   The users needs to quickly and accurately select from a large list
        -    Potential Pitfalls
              -   displaying completions too soon
              -   displaying completions too often
        -    Best Practices
              -   don’t require the user to arrow or mouse to the selected item
              -   tab should select the best match
              -   delay popup until user
              -   slows typing
Tuesday, December 4, 2007                                                              68
Object Selection
        -    Use When
              -   in a scrolled table
              -   selecting objects
        -    Potential Pitfalls
              -   complexity of contiguous vs. discontiguous
              -   using CTRL for discontiguous will not work on Macintosh
        -    Best Practices
              -   allow multiple selection
              -   allow discontiguous selection
Tuesday, December 4, 2007                                                   69
Periodic Refresh
        -    Use When
              -   content is based on live information
              -   for enticing users to click-through
        -    Potential Pitfalls
              -   can be distracting if not primary
        -    Best Practices
              -   if secondary to page, then make refreshes less frequent and
                  simple
              -   if primary to page, then make refreshes more frequent &
                  visible
Tuesday, December 4, 2007                                                       70
Composite Patterns
        -    eCommerce
        -    Search
        -    Multiple patterns in harmony
        -    Real world



Tuesday, December 4, 2007                        71
Single Page Checkout Demo
        -    One Page
        -    Not crossing pages
        -    Liveforms
        -    Goal increase conversion rates
        -    ElasticPath.com


Tuesday, December 4, 2007                     72
Dynamic Searching
        -    Dynamic Searching
        -    Hover
        -    Live Scrolling
        -    Adiamor.com



Tuesday, December 4, 2007                       73
Auto Commit
        -    Protect the user with “Auto Save”
        -    Careful of permanent changes
        -    Con rmation
        -    Acceptance
        -    Undo (multi level)


Tuesday, December 4, 2007                        74
Polling and Push
        -    Polling is often good enough
        -    Push often needs some some none JS
              -   I.e. Flash
              -   Comet




Tuesday, December 4, 2007                         75
Pattern Resources
        -    Yahoo Pattern Library
              -   Bill Scott
        -    UI-Patterns.com
                                              Go record your own!
        -    AjaxPatterns.org
              -   Michael Mahemo
        -    Designing Interfaces
              -   http://designinginterfaces.com/
Tuesday, December 4, 2007                                           76
Exercise
        -    Pick a web app
              -   Gmail, internal, google spreadsheets
        -    Identify Patterns
              -   Good
              -   Bad
        -    Discuss

Tuesday, December 4, 2007                                77
Chapter 10 Risk and Best Practices



urces of Risk

        AJAX has at least three main areas of risk. These can be described as tech-
                                              Risks
        nical, cultural/political, and marketing risks, as shown in Figure 10.1.




                                                  Marketing
                                                    Risk




                                       Cultural           Technology
                                        Risk                 Risk




        Figure 10.1
Tuesday, December 4, 2007The   AJAX Risk-Factor Triad                             78
Technical Risks
        -    Design
        -    Development
        -    Maintenance
        -    Security
        -    Browser Capabilities
        -    Timeline and Cost
Tuesday, December 4, 2007                     79
Cultural and Political Risks
        -    Usability
        -    User experience
        -    Attitudes
        -    Expectations
        -

Tuesday, December 4, 2007                     80
Marketing Risks
        -    Penetration
        -    Sales
        -    Donations
        -    Branding
        -    Sign Ups


Tuesday, December 4, 2007                     81
402
                                    Reach vs Rich
            Chapter 10 Risk and Best Practices
                            Reach




                                         Richness
Tuesday, December 4, 2007                           82
Search Engines
        -    De nitely a risk for public apps
        -    Search engines are adapting
              -   Google Events
        -    Unique URLs
        -    Be careful with “black hat” techniques


Tuesday, December 4, 2007                             83
SEO Tips
        -    Avoid Ajax (use sparingly)
              -   For Primary Navigation
              -   Content driven site where SERPs are
                  important
              -   Links that need to be followed by bots



Tuesday, December 4, 2007                                  84
Reach
        -    Very real marketing risk
        -    3% - 10% of public has JS turned o *
        -    Radically di erent or UIs can intimidate
        -    Lower search engine can a ect business
        -    Apps will have to balance this vs
             innovation to gain market share

Tuesday, December 4, 2007                               85
Monetization
        -    Ok for Cost Per Click (CPC)
        -    Bad for Cost Per Impression (CPM)
        -    Event trigger for ads?
        -    Content matching



Tuesday, December 4, 2007                        86
Risk Mitigation
        -    Use a framework or components
        -    Progressive enhancement
        -    Google sitemaps
        -    Visual cues and enhancements
        -    Avoid gold plating
        -    Pick your revenue model carefully

Tuesday, December 4, 2007                        87
O ine Ajax
        -    Google Gears
        -    Adobe AIR
        -    FireFox 3.0
        -    Local Data Storage (IE, FireFox, Flash)



Tuesday, December 4, 2007                              88
Action Plan
        -    Recognize the need for usability
        -    Get management support
        -    Devote specific resources
        -    Integrate systematic practices
        -    Test all interfaces for usability


Tuesday, December 4, 2007                        89
Questions?
                                            References & Resources:
            Contact Info
                                            www.enterpriseajax.com
            andre@nitobi.com
                                            www.billwscott.com
            http://blogs.nitobi.com/andre   www.designinginterfaces.com
            www.enterpriseajax.com
            www.nitobi.com




Tuesday, December 4, 2007                                                 90

Weitere ähnliche Inhalte

Mehr von AndreCharland

Phone gap day welcome 2012
Phone gap day welcome 2012Phone gap day welcome 2012
Phone gap day welcome 2012AndreCharland
 
Phone gap Stats & Growth
Phone gap Stats & GrowthPhone gap Stats & Growth
Phone gap Stats & GrowthAndreCharland
 
PhoneGap Build Presentation at Deploy2010
PhoneGap Build Presentation at Deploy2010PhoneGap Build Presentation at Deploy2010
PhoneGap Build Presentation at Deploy2010AndreCharland
 
Calendar Finalto Distribute Small
Calendar Finalto Distribute SmallCalendar Finalto Distribute Small
Calendar Finalto Distribute SmallAndreCharland
 
Rad Boob Club Calendar 2010
Rad Boob Club Calendar 2010Rad Boob Club Calendar 2010
Rad Boob Club Calendar 2010AndreCharland
 
InsideRIA Outlook for 2009
InsideRIA Outlook for 2009InsideRIA Outlook for 2009
InsideRIA Outlook for 2009AndreCharland
 
Ajax in AIR from On AIR Tour Europe
Ajax in AIR from On AIR Tour EuropeAjax in AIR from On AIR Tour Europe
Ajax in AIR from On AIR Tour EuropeAndreCharland
 
Ajax Development With Dreamweaver
Ajax Development With DreamweaverAjax Development With Dreamweaver
Ajax Development With DreamweaverAndreCharland
 
Ajax and JavaScript Bootcamp
Ajax and JavaScript BootcampAjax and JavaScript Bootcamp
Ajax and JavaScript BootcampAndreCharland
 
Enterprise AIR Development for JavaScript Developers
Enterprise AIR Development for JavaScript DevelopersEnterprise AIR Development for JavaScript Developers
Enterprise AIR Development for JavaScript DevelopersAndreCharland
 
Blogging For Business
Blogging For BusinessBlogging For Business
Blogging For BusinessAndreCharland
 
Web Usability in the Enterprise with Ajax
Web Usability in the Enterprise with AjaxWeb Usability in the Enterprise with Ajax
Web Usability in the Enterprise with AjaxAndreCharland
 
Ajax Usability for AjaxWorld
Ajax Usability for AjaxWorldAjax Usability for AjaxWorld
Ajax Usability for AjaxWorldAndreCharland
 
Using the Tools of Web 2.0 for Marketing
Using the Tools of Web 2.0 for MarketingUsing the Tools of Web 2.0 for Marketing
Using the Tools of Web 2.0 for MarketingAndreCharland
 
GIS Applications on the Web
GIS Applications on the WebGIS Applications on the Web
GIS Applications on the WebAndreCharland
 

Mehr von AndreCharland (16)

Phone gap day welcome 2012
Phone gap day welcome 2012Phone gap day welcome 2012
Phone gap day welcome 2012
 
Phone gap Stats & Growth
Phone gap Stats & GrowthPhone gap Stats & Growth
Phone gap Stats & Growth
 
PhoneGap Build Presentation at Deploy2010
PhoneGap Build Presentation at Deploy2010PhoneGap Build Presentation at Deploy2010
PhoneGap Build Presentation at Deploy2010
 
Calendar Finalto Distribute Small
Calendar Finalto Distribute SmallCalendar Finalto Distribute Small
Calendar Finalto Distribute Small
 
Rad Boob Club Calendar 2010
Rad Boob Club Calendar 2010Rad Boob Club Calendar 2010
Rad Boob Club Calendar 2010
 
InsideRIA Outlook for 2009
InsideRIA Outlook for 2009InsideRIA Outlook for 2009
InsideRIA Outlook for 2009
 
Ajax in AIR from On AIR Tour Europe
Ajax in AIR from On AIR Tour EuropeAjax in AIR from On AIR Tour Europe
Ajax in AIR from On AIR Tour Europe
 
Ajax Development With Dreamweaver
Ajax Development With DreamweaverAjax Development With Dreamweaver
Ajax Development With Dreamweaver
 
Adobe AIR Overview
Adobe AIR OverviewAdobe AIR Overview
Adobe AIR Overview
 
Ajax and JavaScript Bootcamp
Ajax and JavaScript BootcampAjax and JavaScript Bootcamp
Ajax and JavaScript Bootcamp
 
Enterprise AIR Development for JavaScript Developers
Enterprise AIR Development for JavaScript DevelopersEnterprise AIR Development for JavaScript Developers
Enterprise AIR Development for JavaScript Developers
 
Blogging For Business
Blogging For BusinessBlogging For Business
Blogging For Business
 
Web Usability in the Enterprise with Ajax
Web Usability in the Enterprise with AjaxWeb Usability in the Enterprise with Ajax
Web Usability in the Enterprise with Ajax
 
Ajax Usability for AjaxWorld
Ajax Usability for AjaxWorldAjax Usability for AjaxWorld
Ajax Usability for AjaxWorld
 
Using the Tools of Web 2.0 for Marketing
Using the Tools of Web 2.0 for MarketingUsing the Tools of Web 2.0 for Marketing
Using the Tools of Web 2.0 for Marketing
 
GIS Applications on the Web
GIS Applications on the WebGIS Applications on the Web
GIS Applications on the Web
 

Kürzlich hochgeladen

Memorándum de Entendimiento (MoU) entre Codelco y SQM
Memorándum de Entendimiento (MoU) entre Codelco y SQMMemorándum de Entendimiento (MoU) entre Codelco y SQM
Memorándum de Entendimiento (MoU) entre Codelco y SQMVoces Mineras
 
Organizational Structure Running A Successful Business
Organizational Structure Running A Successful BusinessOrganizational Structure Running A Successful Business
Organizational Structure Running A Successful BusinessSeta Wicaksana
 
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort ServiceCall US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort Servicecallgirls2057
 
International Business Environments and Operations 16th Global Edition test b...
International Business Environments and Operations 16th Global Edition test b...International Business Environments and Operations 16th Global Edition test b...
International Business Environments and Operations 16th Global Edition test b...ssuserf63bd7
 
Call Us 📲8800102216📞 Call Girls In DLF City Gurgaon
Call Us 📲8800102216📞 Call Girls In DLF City GurgaonCall Us 📲8800102216📞 Call Girls In DLF City Gurgaon
Call Us 📲8800102216📞 Call Girls In DLF City Gurgaoncallgirls2057
 
Financial-Statement-Analysis-of-Coca-cola-Company.pptx
Financial-Statement-Analysis-of-Coca-cola-Company.pptxFinancial-Statement-Analysis-of-Coca-cola-Company.pptx
Financial-Statement-Analysis-of-Coca-cola-Company.pptxsaniyaimamuddin
 
Ten Organizational Design Models to align structure and operations to busines...
Ten Organizational Design Models to align structure and operations to busines...Ten Organizational Design Models to align structure and operations to busines...
Ten Organizational Design Models to align structure and operations to busines...Seta Wicaksana
 
8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR
8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR
8447779800, Low rate Call girls in New Ashok Nagar Delhi NCRashishs7044
 
Appkodes Tinder Clone Script with Customisable Solutions.pptx
Appkodes Tinder Clone Script with Customisable Solutions.pptxAppkodes Tinder Clone Script with Customisable Solutions.pptx
Appkodes Tinder Clone Script with Customisable Solutions.pptxappkodes
 
Chapter 9 PPT 4th edition.pdf internal audit
Chapter 9 PPT 4th edition.pdf internal auditChapter 9 PPT 4th edition.pdf internal audit
Chapter 9 PPT 4th edition.pdf internal auditNhtLNguyn9
 
8447779800, Low rate Call girls in Dwarka mor Delhi NCR
8447779800, Low rate Call girls in Dwarka mor Delhi NCR8447779800, Low rate Call girls in Dwarka mor Delhi NCR
8447779800, Low rate Call girls in Dwarka mor Delhi NCRashishs7044
 
Innovation Conference 5th March 2024.pdf
Innovation Conference 5th March 2024.pdfInnovation Conference 5th March 2024.pdf
Innovation Conference 5th March 2024.pdfrichard876048
 
Flow Your Strategy at Flight Levels Day 2024
Flow Your Strategy at Flight Levels Day 2024Flow Your Strategy at Flight Levels Day 2024
Flow Your Strategy at Flight Levels Day 2024Kirill Klimov
 
Buy gmail accounts.pdf Buy Old Gmail Accounts
Buy gmail accounts.pdf Buy Old Gmail AccountsBuy gmail accounts.pdf Buy Old Gmail Accounts
Buy gmail accounts.pdf Buy Old Gmail AccountsBuy Verified Accounts
 
8447779800, Low rate Call girls in Saket Delhi NCR
8447779800, Low rate Call girls in Saket Delhi NCR8447779800, Low rate Call girls in Saket Delhi NCR
8447779800, Low rate Call girls in Saket Delhi NCRashishs7044
 
Unlocking the Future: Explore Web 3.0 Workshop to Start Earning Today!
Unlocking the Future: Explore Web 3.0 Workshop to Start Earning Today!Unlocking the Future: Explore Web 3.0 Workshop to Start Earning Today!
Unlocking the Future: Explore Web 3.0 Workshop to Start Earning Today!Doge Mining Website
 
Call Girls Contact Number Andheri 9920874524
Call Girls Contact Number Andheri 9920874524Call Girls Contact Number Andheri 9920874524
Call Girls Contact Number Andheri 9920874524najka9823
 
The-Ethical-issues-ghhhhhhhhjof-Byjus.pptx
The-Ethical-issues-ghhhhhhhhjof-Byjus.pptxThe-Ethical-issues-ghhhhhhhhjof-Byjus.pptx
The-Ethical-issues-ghhhhhhhhjof-Byjus.pptxmbikashkanyari
 
Cyber Security Training in Office Environment
Cyber Security Training in Office EnvironmentCyber Security Training in Office Environment
Cyber Security Training in Office Environmentelijahj01012
 

Kürzlich hochgeladen (20)

Memorándum de Entendimiento (MoU) entre Codelco y SQM
Memorándum de Entendimiento (MoU) entre Codelco y SQMMemorándum de Entendimiento (MoU) entre Codelco y SQM
Memorándum de Entendimiento (MoU) entre Codelco y SQM
 
Organizational Structure Running A Successful Business
Organizational Structure Running A Successful BusinessOrganizational Structure Running A Successful Business
Organizational Structure Running A Successful Business
 
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort ServiceCall US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
 
International Business Environments and Operations 16th Global Edition test b...
International Business Environments and Operations 16th Global Edition test b...International Business Environments and Operations 16th Global Edition test b...
International Business Environments and Operations 16th Global Edition test b...
 
Call Us 📲8800102216📞 Call Girls In DLF City Gurgaon
Call Us 📲8800102216📞 Call Girls In DLF City GurgaonCall Us 📲8800102216📞 Call Girls In DLF City Gurgaon
Call Us 📲8800102216📞 Call Girls In DLF City Gurgaon
 
Financial-Statement-Analysis-of-Coca-cola-Company.pptx
Financial-Statement-Analysis-of-Coca-cola-Company.pptxFinancial-Statement-Analysis-of-Coca-cola-Company.pptx
Financial-Statement-Analysis-of-Coca-cola-Company.pptx
 
Ten Organizational Design Models to align structure and operations to busines...
Ten Organizational Design Models to align structure and operations to busines...Ten Organizational Design Models to align structure and operations to busines...
Ten Organizational Design Models to align structure and operations to busines...
 
8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR
8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR
8447779800, Low rate Call girls in New Ashok Nagar Delhi NCR
 
Appkodes Tinder Clone Script with Customisable Solutions.pptx
Appkodes Tinder Clone Script with Customisable Solutions.pptxAppkodes Tinder Clone Script with Customisable Solutions.pptx
Appkodes Tinder Clone Script with Customisable Solutions.pptx
 
Chapter 9 PPT 4th edition.pdf internal audit
Chapter 9 PPT 4th edition.pdf internal auditChapter 9 PPT 4th edition.pdf internal audit
Chapter 9 PPT 4th edition.pdf internal audit
 
8447779800, Low rate Call girls in Dwarka mor Delhi NCR
8447779800, Low rate Call girls in Dwarka mor Delhi NCR8447779800, Low rate Call girls in Dwarka mor Delhi NCR
8447779800, Low rate Call girls in Dwarka mor Delhi NCR
 
Call Us ➥9319373153▻Call Girls In North Goa
Call Us ➥9319373153▻Call Girls In North GoaCall Us ➥9319373153▻Call Girls In North Goa
Call Us ➥9319373153▻Call Girls In North Goa
 
Innovation Conference 5th March 2024.pdf
Innovation Conference 5th March 2024.pdfInnovation Conference 5th March 2024.pdf
Innovation Conference 5th March 2024.pdf
 
Flow Your Strategy at Flight Levels Day 2024
Flow Your Strategy at Flight Levels Day 2024Flow Your Strategy at Flight Levels Day 2024
Flow Your Strategy at Flight Levels Day 2024
 
Buy gmail accounts.pdf Buy Old Gmail Accounts
Buy gmail accounts.pdf Buy Old Gmail AccountsBuy gmail accounts.pdf Buy Old Gmail Accounts
Buy gmail accounts.pdf Buy Old Gmail Accounts
 
8447779800, Low rate Call girls in Saket Delhi NCR
8447779800, Low rate Call girls in Saket Delhi NCR8447779800, Low rate Call girls in Saket Delhi NCR
8447779800, Low rate Call girls in Saket Delhi NCR
 
Unlocking the Future: Explore Web 3.0 Workshop to Start Earning Today!
Unlocking the Future: Explore Web 3.0 Workshop to Start Earning Today!Unlocking the Future: Explore Web 3.0 Workshop to Start Earning Today!
Unlocking the Future: Explore Web 3.0 Workshop to Start Earning Today!
 
Call Girls Contact Number Andheri 9920874524
Call Girls Contact Number Andheri 9920874524Call Girls Contact Number Andheri 9920874524
Call Girls Contact Number Andheri 9920874524
 
The-Ethical-issues-ghhhhhhhhjof-Byjus.pptx
The-Ethical-issues-ghhhhhhhhjof-Byjus.pptxThe-Ethical-issues-ghhhhhhhhjof-Byjus.pptx
The-Ethical-issues-ghhhhhhhhjof-Byjus.pptx
 
Cyber Security Training in Office Environment
Cyber Security Training in Office EnvironmentCyber Security Training in Office Environment
Cyber Security Training in Office Environment
 

Voices That Matter Ajax Overview

  • 1. Ajax The Big Picture Andre Charland CEO and Co-Founder Nitobi Tuesday, December 4, 2007 1
  • 2. About Me - Andre Charland - Nitobi -Founder, President - Author of Enterprise AJAX for Prentice Hall - AJAX Experts - 10 Employees - Founded in Vancouver, 1998 - 100s of AJAX Customers Tuesday, December 4, 2007 2
  • 4. - Ajax User Interface Component suite (9) - Cross platform - Java - ASP.NET/ASP - PHP - Coldfusion Tuesday, December 4, 2007 4
  • 5. - Enterprise Web Systems Development - UI Visioning and development - Intranets - ‘In the eld’ web systems - Consumer Web Systems Development - Web strategy - Application development Tuesday, December 4, 2007 5
  • 6. Rich Internet Applications - AJAX - Java - WebStart - Applets - JavaFX - Flash - Flex - Silverlight / WPF - Adobe Integrated Runtime (AIR) Tuesday, December 4, 2007 6
  • 7. Restlet  SWATO AJASON    AjaxCFC IWF  Tacos aSSL   PHPLiveX Zimbra AjaxTk  JSMX   Telosys AjaxAC   Picora JuiseLib   ThinkCAP JX  WDDXAJ Ajax Agent   AjaxCaller Qcodo   Wicket Cajax   WidgetServer  Akelos sniPEAR AjaxGears   Claw   Symfony AjaxToolbox Cajax AModule Wonder   FURIA     AJAX Frameworks PAJAX AJFORM XANDRA Claw Guava      AJASON  xWire  PAJAJ Jx/jxs HTS     FURIA Guava aSSL  ZK jPOP Gaia Lokris   Google Web Toolkit Tigermouse   -   Dojo JPSpanAjax.NETMAJAX HTS AjaxAC XOAD        Mochikit - Zephyr Adobe Spry My-BIC Ajaxium RSLite jPOP       Ajax Age Sack  Yahoo User Interface Kumbia`Anthem.NET  JPSpan  - ADF  Script.aculo.us AjaxAspects    Cerny  My-BIC Library  Rico UniAjax Rails-supported ADL   -Prototype Bitkraft Kumbia   Direct Web Remoting  EXT   ASP.NET Ajax (Atlas)  XHConn  Sarissa ComfortASP.NET NanoAjax  - Moo.fx  (DWR) Noculo MOJO   JackBe  CakePHP  SAJAX emergetk    JQuery  SmartClient FastPage PHPLiveX   AjaxTags  XAJAX   Javeline Picora Zapate   Ajax Client MagicAjax.NET    Django  Rialto  JsLINB  Subsys_jsHttpReques mxAjax Qcodo  Engine   Compo sniPEAR   Nitobi  Telerik  JsRia t  Ajax Queue Class PAJAX ne Symfony   Backbase  Infragistics  Macao   ThyAPI  Lumberjack  Farpoi  TIBCO  IceSoft PAJAJ   OpenLink Tigermouse  Nexaweb JSLog   TIBET   ActiveWidgets  Plex Toolkit  DevEx XOAD   Laszlo  jsTracer  Dart  twoBirds  Qooxdoo  Janus  CAPXOUS Tuesday, December 4, 2007 7
  • 9. Users First - Nothing else matters - The interface is the application Tuesday, December 4, 2007 9
  • 10. Usability “Usability is a term used to denote the ease with which people can employ a particular tool or other human-made object in order to achieve a particular goal” - Helping users achieve their goals - With great power comes great responsibility - Helping users kick ass! Tuesday, December 4, 2007 10
  • 11. Factors - Learnability - Memorability - E ectiveness - E ciency - Satisfaction ;-) Tuesday, December 4, 2007 11
  • 12. Bene ts - Higher rates of task success - Happier users - More efficient users - Saving time for users - ROI Tuesday, December 4, 2007 12
  • 13. Why RIA? - User Retention - Brand Development - User E ciency - Steps to complete a task - Training costs - Uninterrupted work ow - Time spent waiting* Tuesday, December 4, 2007 13
  • 14. http://www.developer.com/java/other/article.php/ 3554271 SAVINGS 32% Tuesday, December 4, 2007 14
  • 15. Financial ROI Hourly (Loaded) Labor Rate X Time Saved per Transaction X Number of Transactions per year Tuesday, December 4, 2007 15
  • 16. Run the numbers... Assumptions: Hourly Labor Rate: $20 Seconds Saved per Transaction: 36 Seconds Number of Transactions per year: 50,000 Savings: $10,000 500 Person Hours Tuesday, December 4, 2007 16
  • 17. Usability Testing - Doesn’t have to expensive - Has to be done - What to test: - Time for task completion - Accuracy (# of mistakes - Recall - User satisfaction Tuesday, December 4, 2007 17
  • 18. Usability Testing: How to do it - Recruit users - Design scenarios - Participant Narration - No egos - Record the session - Test small, test often Tuesday, December 4, 2007 18
  • 19. Usability Testing Resources - User Interface Engineering by Jakob Nielsen - Ethnio - remote testing services - Usability.gov Tuesday, December 4, 2007 19
  • 20. Usability Data - Microsoft designed the new office UI, the ribbon, based on lots of data - 1.2 billion data sessions collected - ~1.8 million sessions per day - In 90 days, they tracked 352 million command bar clicks in Word - Tracked 6000 individual datapoints Tuesday, December 4, 2007 20
  • 21. Analysis Tools - RobotReplay - Adobe Connect - Google Analytics (Events) Tuesday, December 4, 2007 21
  • 22. Google Analytics Demo Tuesday, December 4, 2007 22
  • 25. Ajax Pitfalls - Back Button - Bookmarking - Confusion - Performance Tuesday, December 4, 2007 25
  • 26. Broken Back Button Tuesday, December 4, 2007 26
  • 27. What Users Expect Tuesday, December 4, 2007 27
  • 28. Fix - # - Build a state record - GWT Tuesday, December 4, 2007 28
  • 29. Performance - Perceived vs Real - User perceptions are more important - Task complexity - Jitter (variability of latency) - Wait time Tuesday, December 4, 2007 29
  • 30. Page Weight - For Example - HTML size—10 KB - JavaScript attachments— 45 KB - Size of all images—25 KB - Total Page Weight—80 KB - Average download time - with 56-K modem: 13.3 seconds (6 KB per second) - With DSL connection: 2.67 seconds (30 KB per second) Tuesday, December 4, 2007 30
  • 31. Wait Time Guidelines - <1 Second - Don’t worry - 1-10 Seconds Activity indicator - >10 Seconds - Progress Bar - Favor Usability over Page Weight Tuesday, December 4, 2007 31
  • 32. Technical Performance Tips - Take advantage of Caching - Reduce File Count - Optimize JavaScript - gZIP JavaScript and CSS - More resources - Y Slow - High Performance Websites Tuesday, December 4, 2007 32
  • 34. Accessibility - You can’t have usability without it - Helping impaired users - Not just blind (more vocal) Tuesday, December 4, 2007 34
  • 35. Automation - Generally doesn’t work with Ajax - Wrong assumptions - Dynamic and changing pages Tuesday, December 4, 2007 35
  • 36. Accessibility Barriers Sight Keyboard & Mouse Hearing Text Only Movement Connection Information Language processing Reading Distractions Comprehension Browser Tuesday, December 4, 2007 36
  • 37. Challenges - W3C says should work without without JS - Focus is on screen readers - Jaws - Graceful degradation doesn’t cut it - Come back with reader X doesn’t cut it Tuesday, December 4, 2007 37
  • 38. Screenreaders: Jaws - Jaws is the primary screen reader on the market - Based on IE - Alternatives: Windows Eyes, Hal, Home Page Reader Tuesday, December 4, 2007 38
  • 39. How Jaws Works - Virtual Bu er - Snapshot of DOM - 2 Modes - “Virtual PC Cursor Mode” is standard - “PC Cursor Mode” is needed for Ajax - Older versions IE only - Jaws 7.0 works with FireFox Tuesday, December 4, 2007 39
  • 40. Keyboard Accessibility - Minimize swapping between input devices - Keyboard Accessibility for everybody - Conform to accepted standards - MS Windows UE Guidelines (http://msdn.microsoft.com/library/ default.asp?url=/library/en-us/dnwue/html/ch08c.asp) - Test with MS Object Inspector Tuesday, December 4, 2007 40
  • 41. Tree Guidelines - Use Arrow Keys - Up and Down move between items - Left and right move along a branch - Right arrow can expand a branch - Left arrow collapses or moves to parent - Enter selects the contents of a node Tuesday, December 4, 2007 41
  • 42. Random Walk Example - Ely Green eld’s sample Tuesday, December 4, 2007 42
  • 43. Jaws Protected Strokes - Ctrl: stops the reader - Ctrl + Home: restart reading from the top - Down Arrow: read the next line - Enter: Activates a link or button Tuesday, December 4, 2007 43
  • 44. Use Common Sense - Don’t barry popular options in tabs - Use tab order with tabindex - Copy popular desktop and web apps - i.e. Outlook, Gmail, etc.. Tuesday, December 4, 2007 44
  • 46. Design and Patterns Tuesday, December 4, 2007 46
  • 47. Design Techniques - User interface patterns - Mock Ups - Paper Prototypes - Keep it simple - Familiar vs. intuitive Tuesday, December 4, 2007 47
  • 48. Tools - Tools and techniques for rapid prototyping - Storyboard - Wire frames - Visio - Power Point - Photoshop - Flash/Flex - Axure - ProtoScript Tuesday, December 4, 2007 48
  • 50. •http://www.boxesandarrows.com/view/ storyboarding_rich_internet_application s_with_visio Tuesday, December 4, 2007 50
  • 52. ProtoScript www.ProtoScript.com Tuesday, December 4, 2007 52
  • 53. RIA Dev Team - Project Manager • Designer • UX/Usability/UI - Front End Developer - Back End Developer / Integrator - Testing / QA Tuesday, December 4, 2007 53
  • 54. Words of Wisdom “If you think you need something never created before, think twice about it” - Bill Scott Tuesday, December 4, 2007 54
  • 55. Patterns - Same Problem, Same Solution - Applications - Problems solved - Pitfalls Tuesday, December 4, 2007 55
  • 56. Design Tips 1. Make it directly interactive 2. Make it inviting 3. Use lightweight, in-context popups instead of page transitions where possible 4. Use real-estate creatively 5. Cross page boundaries reluctantly 6. Create a light footprint 7. Think of your interactions as storyboards 8. Communicate transitions 9. Think in objects http://looksgoodworkswell.blogspot.com/2006/01/nine-tips-for-designing-rich-internet.html Tuesday, December 4, 2007 56
  • 57. Drag and Drop - Use When - you want to manipulate a natural visual model of objects - Potential Pitfalls - starting with drag & drop - using it to set a single attribute - constructing arti cial visual constructs - using it for removal - confusing drag ghost with drag object - user’s don’t get it - creating page jitter Tuesday, December 4, 2007 57
  • 58. Progress Bars - Use When - needing to show upload status - Possible Pitfalls - non-accurate progress indication - Best Practices - place the indicators as close to the le names as possible - nish with “completed” status if displayed in grid... otherwise nish with status and fade out Tuesday, December 4, 2007 58
  • 59. Activity Indicators - Use When - need to show system is processing - want to show indication in context - Possible Pitfalls - can be distracting if not necessary - Best Practices - place the busy indication as close to the use input as possible - use small animated indicator beside input or inside input eld - place the busy indication at the place where the results will appear - use an overlay with translucency if redirecting attention - don’t use too many indicators as it will make for a noisy interface - avoid using indicator if delay is really short (<1 Sec) Tuesday, December 4, 2007 59
  • 60. Fading and Color Changing - Use When - need to spotlight a change occurred - Possible Pitfalls - if too many places, can be distracting - Best Practices - use in just one or two selected areas - if more, make sure that there aren’t too many updating at once - if area is large, consider more subtle coloring - fade out quickly (usually less than one second; but much faster is acceptable) Tuesday, December 4, 2007 60
  • 61. Rollovers - Use When - need to show detail in context - Potential Pitfalls - popup too quick - popup too slow, seem sluggish - Best Practices - show detail after 0.25 second delay - dismiss immediately on mouse out or click Tuesday, December 4, 2007 61
  • 62. In-Place Editing - Use When - item being edited is multi- eld - you want to be explicit about the edit mode - Potential Pitfalls - discoverability - too subtle of invitation - clutter visual display w/ invitations - making page jump Tuesday, December 4, 2007 62
  • 63. Master Detail - Use When - Browsing relational data - Possible Pitfalls - Confusing to user - Best Practices - Drill Down - Keep it light - Provide indicator during wait Tuesday, December 4, 2007 63
  • 64. Live Search - Use When - user needs to search for content and are uncertain on the correct keywords. - Potential Pitfalls - if results are returned too quick, will be distracting - if results are not returned quick enough, it will feel sluggish - Best Practices - start returning results when the user “slows down” typing - show results below text entry eld for feedback Tuesday, December 4, 2007 64
  • 65. Live Scrolling - Use When - chunking data would a ect user ow - content is data; not search results - data content will be sorted, ltered, etc. - selection model is continuous - Potential Pitfalls - dual-scrollbar issue - sluggish performance - extremely large data sets - Best Practices - provide dynamic tooltip showing location within scroll - animate scroll Tuesday, December 4, 2007 65
  • 66. Live Form - Use When - User entered data needs to be validated on the y and cannot be checked locally - Best Practices - Generation of new elds is required - Validation and feedback from the server is needed - Removing or disabling parts of the form - Submitting data to the server before completion - Server side validation without refresh Tuesday, December 4, 2007 66
  • 67. Invitation - Use When - You want to invite the user to click or interact with the object being hovered over. - Potential Pitfalls - discoverability - Best Practices - use hover to reveal interaction - use the familiar to teach the new - use tours sparingly - think of how it will interact with rest of page Tuesday, December 4, 2007 67
  • 68. Auto Complete - Use When - The users needs to quickly and accurately select from a large list - Potential Pitfalls - displaying completions too soon - displaying completions too often - Best Practices - don’t require the user to arrow or mouse to the selected item - tab should select the best match - delay popup until user - slows typing Tuesday, December 4, 2007 68
  • 69. Object Selection - Use When - in a scrolled table - selecting objects - Potential Pitfalls - complexity of contiguous vs. discontiguous - using CTRL for discontiguous will not work on Macintosh - Best Practices - allow multiple selection - allow discontiguous selection Tuesday, December 4, 2007 69
  • 70. Periodic Refresh - Use When - content is based on live information - for enticing users to click-through - Potential Pitfalls - can be distracting if not primary - Best Practices - if secondary to page, then make refreshes less frequent and simple - if primary to page, then make refreshes more frequent & visible Tuesday, December 4, 2007 70
  • 71. Composite Patterns - eCommerce - Search - Multiple patterns in harmony - Real world Tuesday, December 4, 2007 71
  • 72. Single Page Checkout Demo - One Page - Not crossing pages - Liveforms - Goal increase conversion rates - ElasticPath.com Tuesday, December 4, 2007 72
  • 73. Dynamic Searching - Dynamic Searching - Hover - Live Scrolling - Adiamor.com Tuesday, December 4, 2007 73
  • 74. Auto Commit - Protect the user with “Auto Save” - Careful of permanent changes - Con rmation - Acceptance - Undo (multi level) Tuesday, December 4, 2007 74
  • 75. Polling and Push - Polling is often good enough - Push often needs some some none JS - I.e. Flash - Comet Tuesday, December 4, 2007 75
  • 76. Pattern Resources - Yahoo Pattern Library - Bill Scott - UI-Patterns.com Go record your own! - AjaxPatterns.org - Michael Mahemo - Designing Interfaces - http://designinginterfaces.com/ Tuesday, December 4, 2007 76
  • 77. Exercise - Pick a web app - Gmail, internal, google spreadsheets - Identify Patterns - Good - Bad - Discuss Tuesday, December 4, 2007 77
  • 78. Chapter 10 Risk and Best Practices urces of Risk AJAX has at least three main areas of risk. These can be described as tech- Risks nical, cultural/political, and marketing risks, as shown in Figure 10.1. Marketing Risk Cultural Technology Risk Risk Figure 10.1 Tuesday, December 4, 2007The AJAX Risk-Factor Triad 78
  • 79. Technical Risks - Design - Development - Maintenance - Security - Browser Capabilities - Timeline and Cost Tuesday, December 4, 2007 79
  • 80. Cultural and Political Risks - Usability - User experience - Attitudes - Expectations - Tuesday, December 4, 2007 80
  • 81. Marketing Risks - Penetration - Sales - Donations - Branding - Sign Ups Tuesday, December 4, 2007 81
  • 82. 402 Reach vs Rich Chapter 10 Risk and Best Practices Reach Richness Tuesday, December 4, 2007 82
  • 83. Search Engines - De nitely a risk for public apps - Search engines are adapting - Google Events - Unique URLs - Be careful with “black hat” techniques Tuesday, December 4, 2007 83
  • 84. SEO Tips - Avoid Ajax (use sparingly) - For Primary Navigation - Content driven site where SERPs are important - Links that need to be followed by bots Tuesday, December 4, 2007 84
  • 85. Reach - Very real marketing risk - 3% - 10% of public has JS turned o * - Radically di erent or UIs can intimidate - Lower search engine can a ect business - Apps will have to balance this vs innovation to gain market share Tuesday, December 4, 2007 85
  • 86. Monetization - Ok for Cost Per Click (CPC) - Bad for Cost Per Impression (CPM) - Event trigger for ads? - Content matching Tuesday, December 4, 2007 86
  • 87. Risk Mitigation - Use a framework or components - Progressive enhancement - Google sitemaps - Visual cues and enhancements - Avoid gold plating - Pick your revenue model carefully Tuesday, December 4, 2007 87
  • 88. O ine Ajax - Google Gears - Adobe AIR - FireFox 3.0 - Local Data Storage (IE, FireFox, Flash) Tuesday, December 4, 2007 88
  • 89. Action Plan - Recognize the need for usability - Get management support - Devote specific resources - Integrate systematic practices - Test all interfaces for usability Tuesday, December 4, 2007 89
  • 90. Questions? References & Resources: Contact Info www.enterpriseajax.com andre@nitobi.com www.billwscott.com http://blogs.nitobi.com/andre www.designinginterfaces.com www.enterpriseajax.com www.nitobi.com Tuesday, December 4, 2007 90