SlideShare a Scribd company logo
1 of 101
Download to read offline
Creating JavaFX™ User
Experiences That Work
Jeff Hoffman
Jindrich Dinga
Karen Stanley
Sun Microsystems, Inc.
BOF-5150
Goals
 Provide some tips on how we would do things
 Share ideas




                                               2
Agenda
  Examples
  Customizing the Experience
  Visual Design
  Resources (more examples, links & code samples)




This presentation is available at the Design at Sun
  blog http://blogs.sun.com/designatsun
                                                      3
Pogo.com #1 - Best User Experience
 User has the required version of Java already
   installed




                                                 4
5
6
Pogo.com #2 - Clunky User Experience
 The user has an old Java or Java is not installed
 No detection on web site
 User is left on his own - Bad user experience




                                                     7
8
9
Microsoft
IE Dialog




            10
Doesn’t
really guide
you through
the process




          11
Pogo.com #3 - Smoother User Experience
 Required version of Java is not installed
 JavaScript detection on web site
 User is directed to Java.com web site and then sent
   back to the original web page




                                                  12
13
Customized
dialog box




       14
This is
 actually
java.com
(sneaky)




      15
16
17
18
After install
 completes, user
is routed back to
    pogo.com
             19
20
21
JavaFX PIE Example
 The following is an example of a JavaFX applet that
   has been deployed on the JavaFX.com website
 Machine without Java Installed




                                                  22
PIE Example – Default User Experience




                                        23
PIE Example – media room (default)

                                     Big White
                                        Box




                                                 24
PIE Example – click to install Java

                                        JavaFX DT
                                        JavaScript
                                      introduces this
                                         message




                                                    25
PIE Example – Java install sequence
                                      java.com is
                                        loaded




                                              26
PIE Example – Java install sequence
                                      ActiveX warning
                                       (replaced with
                                      download dialog
                                          in 6u14)




                                                   27
PIE Example – Java install sequence
                                       IE Security
                                      Warning Dialog




                                                  28
PIE Example – Java install
                             Installer starts




                                            29
PIE Example – Java install complete   When install is
                                       complete, DT
                                      takes you back
                                       to the original
                                            page




                                                   30
PIE Example – loading media room

                                   Default animated
                                   GIF on Big White
                                         Box




                                                  31
PIE Example – media room applet starts
                                    Applet begins
                                   (and loads more
                                         data)




                                                32
PIE Example – media room applet running




                                          33
JavaFX PIE Example - Smoother User
Experience
 Remove some of the steps
 Add custom touches to keep the user involved in
   the web experience




                                                   34
PIE Example – home page




                          35
PIE Example – No Java
                         Customized
                           message
                         inserted (no
                        more big white
                            box!)




                                     36
PIE Example – Install complete




                                 Your website
                                 maintains it’s
                                 design during
                                  Java install




                                          37
PIE Example – media room applet starts
                                   Custom loading
                                   GIF means no
                                   Big White Box!




                                               38
PIE Example – media room applet running




                                          39
PIE Example – some lessons
 Using Deployment Toolkit (DT)
   JavaFX DT: http://dl.javafx.com/1.2/dtfx.js
   Java DT: http://java.com/js/deployJava.js
 Java install invoked via customized button
 Can customize the DT code and deploy on your
   own site (it's just JavaScript)




                                                 40
Application Deployment Flow
                       Applet      Loading


App Web   Determine          Drag to
 Page      System                                                 Running
                             Desktop


          Required
           Java?      Web Start        Splash           Loading


 Help      Install
 Page       Java


          IFTW or                               Error
           Kernel                               Page


                                                                     41
Application Deployment Flow
                        Applet        Loading
                           Can
                       Customize the
App Web   Determine   UE basedDrag to
                               on OS
 Page      System       or Browser                                Running
                              Desktop


          Required
           Java?       Web Start      Splash            Loading


 Help      Install
 Page       Java


          IFTW or                               Error
           Kernel                               Page


                                                                     42
Application Deployment Flow
                        Applet       Loading


App Web   Determine           Drag to
 Page      System                                                  Running
                              Desktop


          Required
           Java?      Web Start         Splash           Loading


 Help      Install     Route the user as
 Page       Java      necessary. Consider
                      using another page

          IFTW or                                Error
           Kernel                                Page


                                                                      43
Application Deployment Flow
                       Applet       Loading
                                     Applet or Web
                                    Start? Both now
App Web   Determine          Drag to use JNLP!
 Page      System                                              Running
                             Desktop


          Required
           Java?      Web Start     Splash           Loading


 Help      Install
 Page       Java


          IFTW or                            Error
           Kernel                            Page


                                                                  44
Application Deployment Flow
                                                            Make your
                                                        applet behave like a
                       Applet      Loading                Web Start app


App Web   Determine          Drag to
 Page      System                                                    Running
                             Desktop


          Required
           Java?      Web Start        Splash           Loading


 Help      Install
 Page       Java


          IFTW or                               Error
           Kernel                               Page


                                                                         45
Application Deployment Flow
                       Applet      Loading


App Web   Determine          Drag to
 Page      System                                                  Running
                             Desktop


          Required
           Java?      Web Start        Splash           Loading

                                                                  Point to
 Help      Install                                          java.com help or
 Page       Java                                              roll your own


          IFTW or                               Error
           Kernel                               Page


                                                                       46
Customizing the Experience
Make it your own...
  What do you get by default?
    Java branded loading graphics
    Java branded splash screen
  Where you can define your own experiences...
    Applet loading graphic & loading strategies (such as
     loading a small applet that in turn loads the rest)
    Web Start splash screen
    Desktop/Start Menu items
    How to invoke “Drag to the desktop”
    Web page appearance if Java isn't installed yet...
                                                      47
Java Branded Graphics
   Applet Loading         Web Start
                        Splash Screen




                                        48
Visual Design
Make a positive impression on the user
  Consumer user experiences are becoming more
    engaging...you need to think like a movie
    producer.
  Catch the user's attention and make them want to
    install Java to run your app.
  Take advantage of JavaFX Production Suite to
    make incorporating artwork in your app easy.




                                                     49
Linksys EasyLink Advisor




                           50
Linksys EasyLink Advisor




                           51
HP Total Care Advisor




                        52
HP Total Care Advisor   Nice icons, but
                        function can be
                         overshadowed




                                    53
HP Machine Setup




                   54
Tech Test Train Application




                              55
Key Take Aways
  Don't just do the default - it's not much effort to
  make a big difference
  Keep users in your web experience
  Visual design is important to keep the user engaged




This presentation is available at the Design at Sun
  blog http://blogs.sun.com/designatsun
                                                        56
Resources
 Related Sessions
 Useful Links
 The End User's System
 Sample Deployment Toolkit (DT) Code
 Security Dialogs
 Dealing with Unexpected Events




                                       57
More Info on the Deployment Toolkit
Check out these sessions
Name (Session ID)                 When?
                       Upcoming Session
Distributing JavaFX™ Applications
with Java™ Web Start Software/
                                  Friday June 05    4:10PM
Maven Repository Manager
(TS-4388)
                       Previous Sessions

Deploying Java™ Technology to
The Masses: How Sun Deploys       Tuesday June 02   10:50 AM
The JavaFX™ Runtime (TS-4381)

Meet the Java™ Deployment
                                  Tuesday June 02   7:30PM
Team (BOF-4383)

                                                             58
More Info on JavaFX Production Suite
A really great link between design and development
                       Previous Sessions
Getting the Most from the
Designers with the JavaFX™        Tuesday June 02 4:40 PM
Production Suite (TS-5494)
Quo Vadis JavaFX™ Production
                                  Tuesday June 02 7:30 PM
Suite (BOF-5493)
JavaFX™ Technology in Action:
                                  Wednesday June
From Design Tool to Desktop to                    11:05 AM
                                  03
Mobile Device (TS-4069)




                                                         59
www.timeanddate.com - IE
 Default detection & default message
 User is directed to another web site to get Java
 The only way how to get the content running is
   using Back button to navigate back to the original
   page or type the URL again
 This user experience may result in the user being
   unsuccessful in getting back to the original page
   and running the content
 www.timeanddate.com/worldclock/
   personalapplet.html

                                                   60
61
62
63
www.timeanddate.com - FF
 Default detection & default message
 User is told that Java is missing
 After Java installation the browser does not load
    Java automatically and displays that Java is still
    missing
 In order to run the content, the user must restart
    browser manually
 This user experience may result in the user being
    unsuccessful in getting their content and installing
    Java over and over again
 www.timeanddate.com/worldclock/
    personalapplet.html                               64
65
66
67
68
69
70
71
72
www.cruisecheap.com - IE&FF
 No detection at all
 360° Viewer does not work and user does not know
   why because there is no information that Java is
   needed in order to start using Viewer
 This user experience falls short of providing users
   what they were promised. Although user may still
   get the information (placeholder content), they
   will not see the viewer and will not know why.
 www.cruisecheap.com/virtual_ship_tours.asp



                                                   73
74
BMTtron game - FF
 User is told that Java is missing and is directed to
   another web site to get Java
 The only way how to get the content running is
   using Back button to navigate back to the original
   page or type the URL again and reload the
   browser
 This user experience may result in the user being
   unsuccessful in getting back to the original page
   and running the content
 www.hotscripts.com/category/java/applets/games-
   entertainment/

                                                   75
76
77
78
79
80
81
82
Applet Deployment – Chemwriter


                                  Detects that
                                  Java is not
                                   installed




                                 Takes the user to a
                                  custom page with
                                     instructions




                                                 83
Applet Deployment – Chemwriter (2)


                                     Launches
                                        Java
                                      Installer




                                         84
Applet Deployment – Chemwriter (3)


                                     Applet Running




                                                      85
Applet Deployment – Chemwriter (4)


                                       Page describes
                                      install process in
                                     current site context




                                                     86
Chemwriter Example
   Home Page                          Applet Running
                    Installer Panel




               Help Page




                                                       87
Customizing the Experience
Useful Links
 Pointers on how to update
   Applet loading graphic & loading strategies
      For example, see this jGuru article
   Getting Started with WebStart Blog Entry
   • Web Start splash screen
   • Desktop/Start Menu items
   Drag to the desktop experience
   Web page appearance if Java isn't installed yet...
 Web Start JNLP has many options – see this article
 JavaScript for Getting User Information from a web
   page visitor
                                                      88
Visual Design Useful Links
 JavaFX.com
   Finding Great Artwork for Your App
   Create Visual Appeal in Your UI
   More coming soon...




                                        89
The End User's System
What does the user need to run your app?
  Consider what's out there...
    Minimum: Java 5+
    Best: Latest (Java 6 Update 14 on Windows)
  Possible situations – the machine has:
    The version they need and it's loaded
    The version they need, but it's not loaded
    No Java at all
    A version of Java that's too old for the app
    Runs an OS that isn't supported by the app

                                                   90
Determining the End User's Needs
Use the Deployment Toolkit (DT)
  If the users don't have what they need, the DT
      helps you make sure they can run your app.
  DT JavaScript can be used to:
    Determine which version of Java (and JavaFX) is
      on the user's system (if any)
    Launch the Java installer (when necessary)
    Return the user to the appropriate page




                                                      91
When Java Needs to be Installed
Various installers are available...
  IFTW (Install from the Web) or Online Installer
    renamed to JavaSetup6u14.exe
    “Currently the most popular”, Approx 7MB overall,
      Initial download < 1MB
  Kernel Installer
    “Just the essentials...and the rest comes later”,
      Initial download < 1MB, Java apps can run after
      about 4MB. The rest trickles down in the
      background as needed. See Google Chrome.
  Offline Installer (backup option)
    “Everything and the kitchen sink”, approx 14MB
                                                        92
Installer Details
  IFTW (JavaSetup6u14.exe)
    java.com (and DT) invokes this one by default
    setInstallerType: function(“online”)
  Kernel
    setInstallerType: function(“kernel”)
  Offline
    Direct the user to the java.com manual download
      page and ask them to select the Offline Installer


                                                          93
java.com Manual Download


                           Online/IFTW
                           installer for
                            Windows




                           Offline installer
                            for Windows




                                           94
Get the User Started
How does the user launch the app?
  Applet placed directly on a web page
  Application starts when the user clicks on a button
  Download an executable JAR
  Drag a running applet from the browser to the
    desktop
    The application then behaves like it was launched
      via Web Start




                                                        95
Simple DT Example
<script src=quot;http://java.com/js/deployJava.jsquot;></script>
<script>
    var list = deployJava.getJREs();
    var result = quot;quot;;
    result = list[0];
    for (var i=1; i<list.length; i++) {
       result += quot;, quot; + list[i];
    }
    document.writeln(quot;<p> You have installed:n quot;+ result);

    if (result == quot;quot;) {
       document.writeln(quot;<p>You no Java installed.quot;);
       deployJava.installLatestJRE();
    } else {
       document.writeln(quot;<p>You have Java installed.quot;);
    }
</script>




                                                              96
Drag to Desktop
 Supported Browsers
   Internet Explorer 6+ on Windows XP and Vista
   Firefox 3 on Windows XP & Vista, Solaris, Linux
 Simple APPLET code
 <APPLET archive=quot;my_applet.jarquot;
   code=quot;MyAppletquot; width=quot;300quot; height=quot;300quot;>
     <PARAM name=quot;draggablequot; value=quot;truequot;>
 </APPLET>




                                                     97
Menus, Shortcuts, Help
 <shortcut online=quot;truequot;>
     <desktop />
     <menu submenu=quot;Corp Appsquot;/>
 </shortcut>

 <information>
     <title> MyApp </title>
     <homepage href=quot;myapp.htmlquot;>
 </information>


                                    98
Security Dialogs
When are they necessary?
 Users perceive these dialogs as a “speed bump” on
   the way to their goal (running YOUR app)
 JavaFX now lets you perform many useful functions
   without signing your app
     Full Screen Video (on user initiated action)
     Cross Domain Access
     Local storage via the JNLP Persistence API,
       updated for JavaFX
                            Upcoming Session
 New Security Features in JDK™
                                     Wednesday June 03   7:45PM
 Releases 6 and 7 (BOF-5102)

                                                                  99
Dealing with the Unexpected
Help the user get back on track...
  Integrated error handling will help get the user back
     on the right track.
    As simple as pointing to the help pages on
     java.com, or giving your own advice as it pertains
     to your application (i.e. Chemwriter example)




                                                     100
Jeff Hoffman
jeff.hoffman@sun.com
Jindrich Dinga
jindrich.dinga@sun.com
Karen Stanley
karen.stanley@sun.com

Java User Experience Design

More Related Content

What's hot

NLLUG 2012 - XPages Extensibility API - going deep!
NLLUG 2012 - XPages Extensibility API - going deep!NLLUG 2012 - XPages Extensibility API - going deep!
NLLUG 2012 - XPages Extensibility API - going deep!René Winkelmeyer
 
Keynote ECSE 2011: Development and Operations - Two Worlds Collide
Keynote ECSE 2011: Development and Operations - Two Worlds CollideKeynote ECSE 2011: Development and Operations - Two Worlds Collide
Keynote ECSE 2011: Development and Operations - Two Worlds CollideEberhard Wolff
 
Windows 10 - tools-tools-tools
Windows 10 - tools-tools-toolsWindows 10 - tools-tools-tools
Windows 10 - tools-tools-toolsRoel van Bueren
 
Jenkins Enterprise by CloudBees Webinar
Jenkins Enterprise by CloudBees WebinarJenkins Enterprise by CloudBees Webinar
Jenkins Enterprise by CloudBees WebinarCloudBees
 
Plugins 2.0 & OSGi Gotchas - Atlassian Summit 2010
Plugins 2.0 & OSGi Gotchas - Atlassian Summit 2010Plugins 2.0 & OSGi Gotchas - Atlassian Summit 2010
Plugins 2.0 & OSGi Gotchas - Atlassian Summit 2010Atlassian
 
Build Trust in Your Build-to-Deployment Flow!
Build Trust in Your Build-to-Deployment Flow!Build Trust in Your Build-to-Deployment Flow!
Build Trust in Your Build-to-Deployment Flow!Baruch Sadogursky
 

What's hot (10)

NLLUG 2012 - XPages Extensibility API - going deep!
NLLUG 2012 - XPages Extensibility API - going deep!NLLUG 2012 - XPages Extensibility API - going deep!
NLLUG 2012 - XPages Extensibility API - going deep!
 
Keynote ECSE 2011: Development and Operations - Two Worlds Collide
Keynote ECSE 2011: Development and Operations - Two Worlds CollideKeynote ECSE 2011: Development and Operations - Two Worlds Collide
Keynote ECSE 2011: Development and Operations - Two Worlds Collide
 
Windows 10 - tools-tools-tools
Windows 10 - tools-tools-toolsWindows 10 - tools-tools-tools
Windows 10 - tools-tools-tools
 
Jenkins Enterprise by CloudBees Webinar
Jenkins Enterprise by CloudBees WebinarJenkins Enterprise by CloudBees Webinar
Jenkins Enterprise by CloudBees Webinar
 
Eclipse Vs Netbeans
Eclipse Vs NetbeansEclipse Vs Netbeans
Eclipse Vs Netbeans
 
2012 01-jenkins-udeploy
2012 01-jenkins-udeploy2012 01-jenkins-udeploy
2012 01-jenkins-udeploy
 
Plugins 2.0 & OSGi Gotchas - Atlassian Summit 2010
Plugins 2.0 & OSGi Gotchas - Atlassian Summit 2010Plugins 2.0 & OSGi Gotchas - Atlassian Summit 2010
Plugins 2.0 & OSGi Gotchas - Atlassian Summit 2010
 
Build Trust in Your Build-to-Deployment Flow!
Build Trust in Your Build-to-Deployment Flow!Build Trust in Your Build-to-Deployment Flow!
Build Trust in Your Build-to-Deployment Flow!
 
10 gui 14
10 gui 1410 gui 14
10 gui 14
 
The xsp starter kit
The xsp starter kitThe xsp starter kit
The xsp starter kit
 

Viewers also liked

JavaOne 2007 BOF Session
JavaOne 2007 BOF SessionJavaOne 2007 BOF Session
JavaOne 2007 BOF SessionJeff Hoffman
 
Paying For College
Paying For CollegePaying For College
Paying For Collegeqwqwqwqwq
 
Money For College
Money For CollegeMoney For College
Money For Collegeqwqwqwqwq
 
Getting Started Uroc Kpp
Getting Started Uroc KppGetting Started Uroc Kpp
Getting Started Uroc Kppqwqwqwqwq
 
Getting Started Uroc Kpp
Getting Started Uroc KppGetting Started Uroc Kpp
Getting Started Uroc Kppqwqwqwqwq
 
Delivery Methods
Delivery MethodsDelivery Methods
Delivery Methodsqwqwqwqwq
 
Paying For Collegeu
Paying For CollegeuPaying For Collegeu
Paying For Collegeuqwqwqwqwq
 
My 2013 International CES Summary
My 2013 International CES SummaryMy 2013 International CES Summary
My 2013 International CES SummaryJeff Hoffman
 
O RELEVO TERRESTRE
O RELEVO TERRESTREO RELEVO TERRESTRE
O RELEVO TERRESTREcole
 
Money For College
Money For CollegeMoney For College
Money For Collegeqwqwqwqwq
 
Paying For College
Paying For CollegePaying For College
Paying For Collegeqwqwqwqwq
 
Paying For College
Paying For CollegePaying For College
Paying For Collegeqwqwqwqwq
 
Delivery Methods
Delivery MethodsDelivery Methods
Delivery Methodsqwqwqwqwq
 
Money for college2
Money for college2Money for college2
Money for college2qwqwqwqwq
 
JavaOne BOF 3615 Latest Java UX Updates
JavaOne BOF 3615 Latest Java UX UpdatesJavaOne BOF 3615 Latest Java UX Updates
JavaOne BOF 3615 Latest Java UX UpdatesJeff Hoffman
 
CES 2010 Summary and Pics
CES 2010 Summary and PicsCES 2010 Summary and Pics
CES 2010 Summary and PicsJeff Hoffman
 
Delivery Methods1a
Delivery Methods1aDelivery Methods1a
Delivery Methods1aqwqwqwqwq
 
Delivery Methods1a
Delivery Methods1aDelivery Methods1a
Delivery Methods1aqwqwqwqwq
 

Viewers also liked (20)

JavaOne 2007 BOF Session
JavaOne 2007 BOF SessionJavaOne 2007 BOF Session
JavaOne 2007 BOF Session
 
Paying For College
Paying For CollegePaying For College
Paying For College
 
Money For College
Money For CollegeMoney For College
Money For College
 
Getting Started Uroc Kpp
Getting Started Uroc KppGetting Started Uroc Kpp
Getting Started Uroc Kpp
 
Getting Started Uroc Kpp
Getting Started Uroc KppGetting Started Uroc Kpp
Getting Started Uroc Kpp
 
Delivery Methods
Delivery MethodsDelivery Methods
Delivery Methods
 
Paying For Collegeu
Paying For CollegeuPaying For Collegeu
Paying For Collegeu
 
My 2013 International CES Summary
My 2013 International CES SummaryMy 2013 International CES Summary
My 2013 International CES Summary
 
O RELEVO TERRESTRE
O RELEVO TERRESTREO RELEVO TERRESTRE
O RELEVO TERRESTRE
 
Money For College
Money For CollegeMoney For College
Money For College
 
Paying For College
Paying For CollegePaying For College
Paying For College
 
Paying For College
Paying For CollegePaying For College
Paying For College
 
Delivery Methods
Delivery MethodsDelivery Methods
Delivery Methods
 
Money for college2
Money for college2Money for college2
Money for college2
 
JavaOne BOF 3615 Latest Java UX Updates
JavaOne BOF 3615 Latest Java UX UpdatesJavaOne BOF 3615 Latest Java UX Updates
JavaOne BOF 3615 Latest Java UX Updates
 
CES 2010 Summary and Pics
CES 2010 Summary and PicsCES 2010 Summary and Pics
CES 2010 Summary and Pics
 
Delivery Methods1a
Delivery Methods1aDelivery Methods1a
Delivery Methods1a
 
CES 2011 Overview
CES 2011 OverviewCES 2011 Overview
CES 2011 Overview
 
CES 2012 Overview
CES 2012 OverviewCES 2012 Overview
CES 2012 Overview
 
Delivery Methods1a
Delivery Methods1aDelivery Methods1a
Delivery Methods1a
 

Similar to JavaOne 2009 Deploying Apps for Consumers Bof5150

The Path Towards Spring Boot Native Applications
The Path Towards Spring Boot Native ApplicationsThe Path Towards Spring Boot Native Applications
The Path Towards Spring Boot Native ApplicationsVMware Tanzu
 
081107 Sammy Eclipse Summit2
081107   Sammy   Eclipse Summit2081107   Sammy   Eclipse Summit2
081107 Sammy Eclipse Summit2mkempka
 
Beyond The Buzz: Pluggable JavaFX Corporate Applications
Beyond The Buzz: Pluggable JavaFX Corporate ApplicationsBeyond The Buzz: Pluggable JavaFX Corporate Applications
Beyond The Buzz: Pluggable JavaFX Corporate ApplicationsJAX London
 
The Next Generation of Continuous Delivery
The Next Generation of Continuous DeliveryThe Next Generation of Continuous Delivery
The Next Generation of Continuous DeliveryIBM UrbanCode Products
 
Going Serverless Using the Spring Framework Ecosystem
Going Serverless Using the Spring Framework EcosystemGoing Serverless Using the Spring Framework Ecosystem
Going Serverless Using the Spring Framework EcosystemVMware Tanzu
 
Continuous Web Performance Monitoring with Jenkins
Continuous Web Performance Monitoring with JenkinsContinuous Web Performance Monitoring with Jenkins
Continuous Web Performance Monitoring with JenkinsMichael Kröll
 
Continuous Integration with Hackintosh
Continuous Integration with HackintoshContinuous Integration with Hackintosh
Continuous Integration with HackintoshDavid Ventura, M.E.T.
 
Java Web Start czyli jak żyć z tą dziwną technologią? & Continuous Delivery w...
Java Web Start czyli jak żyć z tą dziwną technologią? & Continuous Delivery w...Java Web Start czyli jak żyć z tą dziwną technologią? & Continuous Delivery w...
Java Web Start czyli jak żyć z tą dziwną technologią? & Continuous Delivery w...MarcinStachniuk
 
Java and windows azure cloud service
Java and windows azure cloud serviceJava and windows azure cloud service
Java and windows azure cloud serviceJeffray Huang
 
Compile open cpn on windows
Compile open cpn on windowsCompile open cpn on windows
Compile open cpn on windowsrandikaucsc
 
JavaFX - Sketch Board to Production
JavaFX - Sketch Board to ProductionJavaFX - Sketch Board to Production
JavaFX - Sketch Board to ProductionYoav Aharoni
 
Continuous Integration: How I stopped guessing if that merge was bad
Continuous Integration: How I stopped guessing if that merge was badContinuous Integration: How I stopped guessing if that merge was bad
Continuous Integration: How I stopped guessing if that merge was badJoe Ferguson
 
Part 5 running java applications
Part 5 running java applicationsPart 5 running java applications
Part 5 running java applicationstechbed
 
Django Deployment with Fabric
Django Deployment with FabricDjango Deployment with Fabric
Django Deployment with FabricJonas Nockert
 

Similar to JavaOne 2009 Deploying Apps for Consumers Bof5150 (20)

Jsf tutorial
Jsf tutorialJsf tutorial
Jsf tutorial
 
The Path Towards Spring Boot Native Applications
The Path Towards Spring Boot Native ApplicationsThe Path Towards Spring Boot Native Applications
The Path Towards Spring Boot Native Applications
 
081107 Sammy Eclipse Summit2
081107   Sammy   Eclipse Summit2081107   Sammy   Eclipse Summit2
081107 Sammy Eclipse Summit2
 
Java tutorial
Java tutorialJava tutorial
Java tutorial
 
Beyond The Buzz: Pluggable JavaFX Corporate Applications
Beyond The Buzz: Pluggable JavaFX Corporate ApplicationsBeyond The Buzz: Pluggable JavaFX Corporate Applications
Beyond The Buzz: Pluggable JavaFX Corporate Applications
 
Java server face tutorial
Java server face tutorialJava server face tutorial
Java server face tutorial
 
The Next Generation of Continuous Delivery
The Next Generation of Continuous DeliveryThe Next Generation of Continuous Delivery
The Next Generation of Continuous Delivery
 
Tutorial for netbeans
Tutorial for netbeansTutorial for netbeans
Tutorial for netbeans
 
Going Serverless Using the Spring Framework Ecosystem
Going Serverless Using the Spring Framework EcosystemGoing Serverless Using the Spring Framework Ecosystem
Going Serverless Using the Spring Framework Ecosystem
 
Ch2
Ch2Ch2
Ch2
 
Continuous Web Performance Monitoring with Jenkins
Continuous Web Performance Monitoring with JenkinsContinuous Web Performance Monitoring with Jenkins
Continuous Web Performance Monitoring with Jenkins
 
Continuous Integration with Hackintosh
Continuous Integration with HackintoshContinuous Integration with Hackintosh
Continuous Integration with Hackintosh
 
Java Web Start czyli jak żyć z tą dziwną technologią? & Continuous Delivery w...
Java Web Start czyli jak żyć z tą dziwną technologią? & Continuous Delivery w...Java Web Start czyli jak żyć z tą dziwną technologią? & Continuous Delivery w...
Java Web Start czyli jak żyć z tą dziwną technologią? & Continuous Delivery w...
 
Java and windows azure cloud service
Java and windows azure cloud serviceJava and windows azure cloud service
Java and windows azure cloud service
 
Compile open cpn on windows
Compile open cpn on windowsCompile open cpn on windows
Compile open cpn on windows
 
Any point on mac
Any point on macAny point on mac
Any point on mac
 
JavaFX - Sketch Board to Production
JavaFX - Sketch Board to ProductionJavaFX - Sketch Board to Production
JavaFX - Sketch Board to Production
 
Continuous Integration: How I stopped guessing if that merge was bad
Continuous Integration: How I stopped guessing if that merge was badContinuous Integration: How I stopped guessing if that merge was bad
Continuous Integration: How I stopped guessing if that merge was bad
 
Part 5 running java applications
Part 5 running java applicationsPart 5 running java applications
Part 5 running java applications
 
Django Deployment with Fabric
Django Deployment with FabricDjango Deployment with Fabric
Django Deployment with Fabric
 

Recently uploaded

Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Nikki Chapple
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentMahmoud Rabie
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Jeffrey Haguewood
 

Recently uploaded (20)

Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career Development
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
 

JavaOne 2009 Deploying Apps for Consumers Bof5150

  • 1. Creating JavaFX™ User Experiences That Work Jeff Hoffman Jindrich Dinga Karen Stanley Sun Microsystems, Inc. BOF-5150
  • 2. Goals Provide some tips on how we would do things Share ideas 2
  • 3. Agenda Examples Customizing the Experience Visual Design Resources (more examples, links & code samples) This presentation is available at the Design at Sun blog http://blogs.sun.com/designatsun 3
  • 4. Pogo.com #1 - Best User Experience User has the required version of Java already installed 4
  • 5. 5
  • 6. 6
  • 7. Pogo.com #2 - Clunky User Experience The user has an old Java or Java is not installed No detection on web site User is left on his own - Bad user experience 7
  • 8. 8
  • 9. 9
  • 12. Pogo.com #3 - Smoother User Experience Required version of Java is not installed JavaScript detection on web site User is directed to Java.com web site and then sent back to the original web page 12
  • 13. 13
  • 16. 16
  • 17. 17
  • 18. 18
  • 19. After install completes, user is routed back to pogo.com 19
  • 20. 20
  • 21. 21
  • 22. JavaFX PIE Example The following is an example of a JavaFX applet that has been deployed on the JavaFX.com website Machine without Java Installed 22
  • 23. PIE Example – Default User Experience 23
  • 24. PIE Example – media room (default) Big White Box 24
  • 25. PIE Example – click to install Java JavaFX DT JavaScript introduces this message 25
  • 26. PIE Example – Java install sequence java.com is loaded 26
  • 27. PIE Example – Java install sequence ActiveX warning (replaced with download dialog in 6u14) 27
  • 28. PIE Example – Java install sequence IE Security Warning Dialog 28
  • 29. PIE Example – Java install Installer starts 29
  • 30. PIE Example – Java install complete When install is complete, DT takes you back to the original page 30
  • 31. PIE Example – loading media room Default animated GIF on Big White Box 31
  • 32. PIE Example – media room applet starts Applet begins (and loads more data) 32
  • 33. PIE Example – media room applet running 33
  • 34. JavaFX PIE Example - Smoother User Experience Remove some of the steps Add custom touches to keep the user involved in the web experience 34
  • 35. PIE Example – home page 35
  • 36. PIE Example – No Java Customized message inserted (no more big white box!) 36
  • 37. PIE Example – Install complete Your website maintains it’s design during Java install 37
  • 38. PIE Example – media room applet starts Custom loading GIF means no Big White Box! 38
  • 39. PIE Example – media room applet running 39
  • 40. PIE Example – some lessons Using Deployment Toolkit (DT) JavaFX DT: http://dl.javafx.com/1.2/dtfx.js Java DT: http://java.com/js/deployJava.js Java install invoked via customized button Can customize the DT code and deploy on your own site (it's just JavaScript) 40
  • 41. Application Deployment Flow Applet Loading App Web Determine Drag to Page System Running Desktop Required Java? Web Start Splash Loading Help Install Page Java IFTW or Error Kernel Page 41
  • 42. Application Deployment Flow Applet Loading Can Customize the App Web Determine UE basedDrag to on OS Page System or Browser Running Desktop Required Java? Web Start Splash Loading Help Install Page Java IFTW or Error Kernel Page 42
  • 43. Application Deployment Flow Applet Loading App Web Determine Drag to Page System Running Desktop Required Java? Web Start Splash Loading Help Install Route the user as Page Java necessary. Consider using another page IFTW or Error Kernel Page 43
  • 44. Application Deployment Flow Applet Loading Applet or Web Start? Both now App Web Determine Drag to use JNLP! Page System Running Desktop Required Java? Web Start Splash Loading Help Install Page Java IFTW or Error Kernel Page 44
  • 45. Application Deployment Flow Make your applet behave like a Applet Loading Web Start app App Web Determine Drag to Page System Running Desktop Required Java? Web Start Splash Loading Help Install Page Java IFTW or Error Kernel Page 45
  • 46. Application Deployment Flow Applet Loading App Web Determine Drag to Page System Running Desktop Required Java? Web Start Splash Loading Point to Help Install java.com help or Page Java roll your own IFTW or Error Kernel Page 46
  • 47. Customizing the Experience Make it your own... What do you get by default? Java branded loading graphics Java branded splash screen Where you can define your own experiences... Applet loading graphic & loading strategies (such as loading a small applet that in turn loads the rest) Web Start splash screen Desktop/Start Menu items How to invoke “Drag to the desktop” Web page appearance if Java isn't installed yet... 47
  • 48. Java Branded Graphics Applet Loading Web Start Splash Screen 48
  • 49. Visual Design Make a positive impression on the user Consumer user experiences are becoming more engaging...you need to think like a movie producer. Catch the user's attention and make them want to install Java to run your app. Take advantage of JavaFX Production Suite to make incorporating artwork in your app easy. 49
  • 52. HP Total Care Advisor 52
  • 53. HP Total Care Advisor Nice icons, but function can be overshadowed 53
  • 55. Tech Test Train Application 55
  • 56. Key Take Aways Don't just do the default - it's not much effort to make a big difference Keep users in your web experience Visual design is important to keep the user engaged This presentation is available at the Design at Sun blog http://blogs.sun.com/designatsun 56
  • 57. Resources Related Sessions Useful Links The End User's System Sample Deployment Toolkit (DT) Code Security Dialogs Dealing with Unexpected Events 57
  • 58. More Info on the Deployment Toolkit Check out these sessions Name (Session ID) When? Upcoming Session Distributing JavaFX™ Applications with Java™ Web Start Software/ Friday June 05 4:10PM Maven Repository Manager (TS-4388) Previous Sessions Deploying Java™ Technology to The Masses: How Sun Deploys Tuesday June 02 10:50 AM The JavaFX™ Runtime (TS-4381) Meet the Java™ Deployment Tuesday June 02 7:30PM Team (BOF-4383) 58
  • 59. More Info on JavaFX Production Suite A really great link between design and development Previous Sessions Getting the Most from the Designers with the JavaFX™ Tuesday June 02 4:40 PM Production Suite (TS-5494) Quo Vadis JavaFX™ Production Tuesday June 02 7:30 PM Suite (BOF-5493) JavaFX™ Technology in Action: Wednesday June From Design Tool to Desktop to 11:05 AM 03 Mobile Device (TS-4069) 59
  • 60. www.timeanddate.com - IE Default detection & default message User is directed to another web site to get Java The only way how to get the content running is using Back button to navigate back to the original page or type the URL again This user experience may result in the user being unsuccessful in getting back to the original page and running the content www.timeanddate.com/worldclock/ personalapplet.html 60
  • 61. 61
  • 62. 62
  • 63. 63
  • 64. www.timeanddate.com - FF Default detection & default message User is told that Java is missing After Java installation the browser does not load Java automatically and displays that Java is still missing In order to run the content, the user must restart browser manually This user experience may result in the user being unsuccessful in getting their content and installing Java over and over again www.timeanddate.com/worldclock/ personalapplet.html 64
  • 65. 65
  • 66. 66
  • 67. 67
  • 68. 68
  • 69. 69
  • 70. 70
  • 71. 71
  • 72. 72
  • 73. www.cruisecheap.com - IE&FF No detection at all 360° Viewer does not work and user does not know why because there is no information that Java is needed in order to start using Viewer This user experience falls short of providing users what they were promised. Although user may still get the information (placeholder content), they will not see the viewer and will not know why. www.cruisecheap.com/virtual_ship_tours.asp 73
  • 74. 74
  • 75. BMTtron game - FF User is told that Java is missing and is directed to another web site to get Java The only way how to get the content running is using Back button to navigate back to the original page or type the URL again and reload the browser This user experience may result in the user being unsuccessful in getting back to the original page and running the content www.hotscripts.com/category/java/applets/games- entertainment/ 75
  • 76. 76
  • 77. 77
  • 78. 78
  • 79. 79
  • 80. 80
  • 81. 81
  • 82. 82
  • 83. Applet Deployment – Chemwriter Detects that Java is not installed Takes the user to a custom page with instructions 83
  • 84. Applet Deployment – Chemwriter (2) Launches Java Installer 84
  • 85. Applet Deployment – Chemwriter (3) Applet Running 85
  • 86. Applet Deployment – Chemwriter (4) Page describes install process in current site context 86
  • 87. Chemwriter Example Home Page Applet Running Installer Panel Help Page 87
  • 88. Customizing the Experience Useful Links Pointers on how to update Applet loading graphic & loading strategies For example, see this jGuru article Getting Started with WebStart Blog Entry • Web Start splash screen • Desktop/Start Menu items Drag to the desktop experience Web page appearance if Java isn't installed yet... Web Start JNLP has many options – see this article JavaScript for Getting User Information from a web page visitor 88
  • 89. Visual Design Useful Links JavaFX.com Finding Great Artwork for Your App Create Visual Appeal in Your UI More coming soon... 89
  • 90. The End User's System What does the user need to run your app? Consider what's out there... Minimum: Java 5+ Best: Latest (Java 6 Update 14 on Windows) Possible situations – the machine has: The version they need and it's loaded The version they need, but it's not loaded No Java at all A version of Java that's too old for the app Runs an OS that isn't supported by the app 90
  • 91. Determining the End User's Needs Use the Deployment Toolkit (DT) If the users don't have what they need, the DT helps you make sure they can run your app. DT JavaScript can be used to: Determine which version of Java (and JavaFX) is on the user's system (if any) Launch the Java installer (when necessary) Return the user to the appropriate page 91
  • 92. When Java Needs to be Installed Various installers are available... IFTW (Install from the Web) or Online Installer renamed to JavaSetup6u14.exe “Currently the most popular”, Approx 7MB overall, Initial download < 1MB Kernel Installer “Just the essentials...and the rest comes later”, Initial download < 1MB, Java apps can run after about 4MB. The rest trickles down in the background as needed. See Google Chrome. Offline Installer (backup option) “Everything and the kitchen sink”, approx 14MB 92
  • 93. Installer Details IFTW (JavaSetup6u14.exe) java.com (and DT) invokes this one by default setInstallerType: function(“online”) Kernel setInstallerType: function(“kernel”) Offline Direct the user to the java.com manual download page and ask them to select the Offline Installer 93
  • 94. java.com Manual Download Online/IFTW installer for Windows Offline installer for Windows 94
  • 95. Get the User Started How does the user launch the app? Applet placed directly on a web page Application starts when the user clicks on a button Download an executable JAR Drag a running applet from the browser to the desktop The application then behaves like it was launched via Web Start 95
  • 96. Simple DT Example <script src=quot;http://java.com/js/deployJava.jsquot;></script> <script> var list = deployJava.getJREs(); var result = quot;quot;; result = list[0]; for (var i=1; i<list.length; i++) { result += quot;, quot; + list[i]; } document.writeln(quot;<p> You have installed:n quot;+ result); if (result == quot;quot;) { document.writeln(quot;<p>You no Java installed.quot;); deployJava.installLatestJRE(); } else { document.writeln(quot;<p>You have Java installed.quot;); } </script> 96
  • 97. Drag to Desktop Supported Browsers Internet Explorer 6+ on Windows XP and Vista Firefox 3 on Windows XP & Vista, Solaris, Linux Simple APPLET code <APPLET archive=quot;my_applet.jarquot; code=quot;MyAppletquot; width=quot;300quot; height=quot;300quot;> <PARAM name=quot;draggablequot; value=quot;truequot;> </APPLET> 97
  • 98. Menus, Shortcuts, Help <shortcut online=quot;truequot;> <desktop /> <menu submenu=quot;Corp Appsquot;/> </shortcut> <information> <title> MyApp </title> <homepage href=quot;myapp.htmlquot;> </information> 98
  • 99. Security Dialogs When are they necessary? Users perceive these dialogs as a “speed bump” on the way to their goal (running YOUR app) JavaFX now lets you perform many useful functions without signing your app Full Screen Video (on user initiated action) Cross Domain Access Local storage via the JNLP Persistence API, updated for JavaFX Upcoming Session New Security Features in JDK™ Wednesday June 03 7:45PM Releases 6 and 7 (BOF-5102) 99
  • 100. Dealing with the Unexpected Help the user get back on track... Integrated error handling will help get the user back on the right track. As simple as pointing to the help pages on java.com, or giving your own advice as it pertains to your application (i.e. Chemwriter example) 100
  • 101. Jeff Hoffman jeff.hoffman@sun.com Jindrich Dinga jindrich.dinga@sun.com Karen Stanley karen.stanley@sun.com Java User Experience Design