javaone 2009 deploying apps for consumers bof5150

101
Creating JavaFX™ User Experiences That Work Jeff Hoffman Jindrich Dinga Karen Stanley Sun Microsystems, Inc. BOF-5150

Upload: jeff-hoffman

Post on 26-May-2015

2.642 views

Category:

Technology


0 download

DESCRIPTION

Discussion at JavaOne 2009 about deploying Java and JavaFX applications for consumers.

TRANSCRIPT

Page 1: JavaOne 2009 Deploying Apps for Consumers Bof5150

Creating JavaFX™ User Experiences That Work

Jeff HoffmanJindrich DingaKaren StanleySun Microsystems, Inc.BOF-5150

Page 2: JavaOne 2009 Deploying Apps for Consumers Bof5150

2

Provide some tips on how we would do things

Share ideas

Goals

Page 3: JavaOne 2009 Deploying Apps for Consumers Bof5150

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

Page 4: JavaOne 2009 Deploying Apps for Consumers Bof5150

4

User has the required version of Java already installed

Pogo.com #1 - Best User Experience

Page 5: JavaOne 2009 Deploying Apps for Consumers Bof5150

5

Page 6: JavaOne 2009 Deploying Apps for Consumers Bof5150

6

Page 7: JavaOne 2009 Deploying Apps for Consumers Bof5150

7

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

Pogo.com #2 - Clunky User Experience

Page 8: JavaOne 2009 Deploying Apps for Consumers Bof5150

8

Page 9: JavaOne 2009 Deploying Apps for Consumers Bof5150

9

Page 10: JavaOne 2009 Deploying Apps for Consumers Bof5150

10

Microsoft IE Dialog

Page 11: JavaOne 2009 Deploying Apps for Consumers Bof5150

11

Doesn’t really guide you through the process

Page 12: JavaOne 2009 Deploying Apps for Consumers Bof5150

12

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

Pogo.com #3 - Smoother User Experience

Page 13: JavaOne 2009 Deploying Apps for Consumers Bof5150

13

Page 14: JavaOne 2009 Deploying Apps for Consumers Bof5150

14

Customized dialog box

Page 15: JavaOne 2009 Deploying Apps for Consumers Bof5150

15

This is actually

java.com (sneaky)

Page 16: JavaOne 2009 Deploying Apps for Consumers Bof5150

16

Page 17: JavaOne 2009 Deploying Apps for Consumers Bof5150

17

Page 18: JavaOne 2009 Deploying Apps for Consumers Bof5150

18

Page 19: JavaOne 2009 Deploying Apps for Consumers Bof5150

19

After install completes, user is routed back to

pogo.com

Page 20: JavaOne 2009 Deploying Apps for Consumers Bof5150

20

Page 21: JavaOne 2009 Deploying Apps for Consumers Bof5150

21

Page 22: JavaOne 2009 Deploying Apps for Consumers Bof5150

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

Page 23: JavaOne 2009 Deploying Apps for Consumers Bof5150

23

PIE Example – Default User Experience

Page 24: JavaOne 2009 Deploying Apps for Consumers Bof5150

24

PIE Example – media room (default)

Big White Box

Page 25: JavaOne 2009 Deploying Apps for Consumers Bof5150

25

PIE Example – click to install Java

JavaFX DT JavaScript

introduces this message

Page 26: JavaOne 2009 Deploying Apps for Consumers Bof5150

26

PIE Example – Java install sequence java.com is

loaded

Page 27: JavaOne 2009 Deploying Apps for Consumers Bof5150

27

PIE Example – Java install sequence ActiveX warning (replaced with

download dialog in 6u14)

Page 28: JavaOne 2009 Deploying Apps for Consumers Bof5150

28

PIE Example – Java install sequenceIE Security

Warning Dialog

Page 29: JavaOne 2009 Deploying Apps for Consumers Bof5150

29

PIE Example – Java install

Installer starts

Page 30: JavaOne 2009 Deploying Apps for Consumers Bof5150

30

PIE Example – Java install complete When install is complete, DT

takes you back to the original

page

Page 31: JavaOne 2009 Deploying Apps for Consumers Bof5150

31

PIE Example – loading media room

Default animated GIF on Big White

Box

Page 32: JavaOne 2009 Deploying Apps for Consumers Bof5150

32

PIE Example – media room applet starts

Applet begins (and loads more

data)

Page 33: JavaOne 2009 Deploying Apps for Consumers Bof5150

33

PIE Example – media room applet running

Page 34: JavaOne 2009 Deploying Apps for Consumers Bof5150

JavaFX PIE Example - Smoother User Experience

Remove some of the steps

Add custom touches to keep the user involved in the web experience

34

Page 35: JavaOne 2009 Deploying Apps for Consumers Bof5150

35

PIE Example – home page

Page 36: JavaOne 2009 Deploying Apps for Consumers Bof5150

36

PIE Example – No Java Customized

message inserted (no

more big white box!)

Page 37: JavaOne 2009 Deploying Apps for Consumers Bof5150

37

PIE Example – Install complete

Your website maintains it’s design during Java install

Page 38: JavaOne 2009 Deploying Apps for Consumers Bof5150

38

PIE Example – media room applet starts

Custom loading GIF means no Big White Box!

Page 39: JavaOne 2009 Deploying Apps for Consumers Bof5150

39

PIE Example – media room applet running

Page 40: JavaOne 2009 Deploying Apps for Consumers Bof5150

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)

Page 41: JavaOne 2009 Deploying Apps for Consumers Bof5150

41

Application Deployment Flow

DetermineSystem

RequiredJava?

InstallJava

IFTW or Kernel

Applet

Web Start

App Web Page

Loading

Help Page

Splash

RunningDrag to Desktop

Error Page

Loading

Page 42: JavaOne 2009 Deploying Apps for Consumers Bof5150

42

Application Deployment Flow

DetermineSystem

RequiredJava?

InstallJava

IFTW or Kernel

Applet

Web Start

App Web Page

Loading

Help Page

Splash

RunningDrag to Desktop

Error Page

Loading

Can Customize the

UE based on OS or Browser

Page 43: JavaOne 2009 Deploying Apps for Consumers Bof5150

43

Application Deployment Flow

DetermineSystem

RequiredJava?

InstallJava

IFTW or Kernel

Applet

Web Start

App Web Page

Loading

Help Page

Splash

RunningDrag to Desktop

Error Page

Loading

Route the user as necessary. Consider using another page

Page 44: JavaOne 2009 Deploying Apps for Consumers Bof5150

44

Application Deployment Flow

DetermineSystem

RequiredJava?

InstallJava

IFTW or Kernel

Applet

Web Start

App Web Page

Loading

Help Page

Splash

RunningDrag to Desktop

Error Page

Loading

Applet or Web Start? Both now

use JNLP!

Page 45: JavaOne 2009 Deploying Apps for Consumers Bof5150

45

Application Deployment Flow

DetermineSystem

RequiredJava?

InstallJava

IFTW or Kernel

Applet

Web Start

App Web Page

Loading

Help Page

Splash

RunningDrag to Desktop

Error Page

Loading

Make your applet behave like a

Web Start app

Page 46: JavaOne 2009 Deploying Apps for Consumers Bof5150

46

Application Deployment Flow

DetermineSystem

RequiredJava?

InstallJava

IFTW or Kernel

Applet

Web Start

App Web Page

Loading

Help Page

Splash

RunningDrag to Desktop

Error Page

Loading

Point to java.com help or

roll your own

Page 47: JavaOne 2009 Deploying Apps for Consumers Bof5150

47

Customizing the ExperienceMake 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...

Page 48: JavaOne 2009 Deploying Apps for Consumers Bof5150

48

Java Branded Graphics

Applet Loading Web StartSplash Screen

Page 49: JavaOne 2009 Deploying Apps for Consumers Bof5150

49

Visual DesignMake 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.

Page 50: JavaOne 2009 Deploying Apps for Consumers Bof5150

Linksys EasyLink Advisor

50

Page 51: JavaOne 2009 Deploying Apps for Consumers Bof5150

Linksys EasyLink Advisor

51

Page 52: JavaOne 2009 Deploying Apps for Consumers Bof5150

HP Total Care Advisor

52

Page 53: JavaOne 2009 Deploying Apps for Consumers Bof5150

HP Total Care Advisor

53

Nice icons, but function can be overshadowed

Page 54: JavaOne 2009 Deploying Apps for Consumers Bof5150

HP Machine Setup

54

Page 55: JavaOne 2009 Deploying Apps for Consumers Bof5150

Tech Test Train Application

55

Page 56: JavaOne 2009 Deploying Apps for Consumers Bof5150

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

Page 57: JavaOne 2009 Deploying Apps for Consumers Bof5150

Resources

Related Sessions

Useful Links

The End User's System

Sample Deployment Toolkit (DT) Code

Security Dialogs

Dealing with Unexpected Events

57

Page 58: JavaOne 2009 Deploying Apps for Consumers Bof5150

58

More Info on the Deployment ToolkitCheck out these sessionsName (Session ID) When?When?

Upcoming SessionUpcoming SessionUpcoming Session

Distributing JavaFX™ Applications with Java™ Web Start Software/Maven Repository Manager (TS-4388)

Friday June 05 4:10PM

Previous SessionsPrevious SessionsPrevious Sessions

Deploying Java™ Technology to The Masses: How Sun Deploys The JavaFX™ Runtime (TS-4381)

Tuesday June 02 10:50 AM

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

Page 59: JavaOne 2009 Deploying Apps for Consumers Bof5150

59

More Info on JavaFX Production SuiteA really great link between design and development

Previous SessionsPrevious SessionsPrevious Sessions

Getting the Most from the Designers with the JavaFX™ Production Suite (TS-5494)

Tuesday June 02 4:40 PM

Quo Vadis JavaFX™ Production Suite (BOF-5493)

Tuesday June 02 7:30 PM

JavaFX™ Technology in Action: From Design Tool to Desktop to Mobile Device (TS-4069)

Wednesday June 03 11:05 AM

Page 60: JavaOne 2009 Deploying Apps for Consumers Bof5150

60

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

www.timeanddate.com - IE

Page 61: JavaOne 2009 Deploying Apps for Consumers Bof5150

61

Page 62: JavaOne 2009 Deploying Apps for Consumers Bof5150

62

Page 63: JavaOne 2009 Deploying Apps for Consumers Bof5150

63

Page 64: JavaOne 2009 Deploying Apps for Consumers Bof5150

64

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

www.timeanddate.com - FF

Page 65: JavaOne 2009 Deploying Apps for Consumers Bof5150

65

Page 66: JavaOne 2009 Deploying Apps for Consumers Bof5150

66

Page 67: JavaOne 2009 Deploying Apps for Consumers Bof5150

67

Page 68: JavaOne 2009 Deploying Apps for Consumers Bof5150

68

Page 69: JavaOne 2009 Deploying Apps for Consumers Bof5150

69

Page 70: JavaOne 2009 Deploying Apps for Consumers Bof5150

70

Page 71: JavaOne 2009 Deploying Apps for Consumers Bof5150

71

Page 72: JavaOne 2009 Deploying Apps for Consumers Bof5150

72

Page 73: JavaOne 2009 Deploying Apps for Consumers Bof5150

73

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

www.cruisecheap.com - IE&FF

Page 74: JavaOne 2009 Deploying Apps for Consumers Bof5150

74

Page 75: JavaOne 2009 Deploying Apps for Consumers Bof5150

75

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/

BMTtron game - FF

Page 76: JavaOne 2009 Deploying Apps for Consumers Bof5150

76

Page 77: JavaOne 2009 Deploying Apps for Consumers Bof5150

77

Page 78: JavaOne 2009 Deploying Apps for Consumers Bof5150

78

Page 79: JavaOne 2009 Deploying Apps for Consumers Bof5150

79

Page 80: JavaOne 2009 Deploying Apps for Consumers Bof5150

80

Page 81: JavaOne 2009 Deploying Apps for Consumers Bof5150

81

Page 82: JavaOne 2009 Deploying Apps for Consumers Bof5150

82

Page 83: JavaOne 2009 Deploying Apps for Consumers Bof5150

83

Detects that Java is not installed

Takes the user to a custom page with

instructions

Applet Deployment – Chemwriter

Page 84: JavaOne 2009 Deploying Apps for Consumers Bof5150

84

Applet Deployment – Chemwriter (2)

LaunchesJava

Installer

Page 85: JavaOne 2009 Deploying Apps for Consumers Bof5150

85

Applet Deployment – Chemwriter (3)

Applet Running

Page 86: JavaOne 2009 Deploying Apps for Consumers Bof5150

86

Applet Deployment – Chemwriter (4)

Page describes install process in

current site context

Page 87: JavaOne 2009 Deploying Apps for Consumers Bof5150

87

Chemwriter Example

Home Page

Help Page

Installer PanelApplet Running

Page 89: JavaOne 2009 Deploying Apps for Consumers Bof5150

Visual Design Useful Links

JavaFX.com

Finding Great Artwork for Your App

Create Visual Appeal in Your UI

More coming soon...

89

Page 90: JavaOne 2009 Deploying Apps for Consumers Bof5150

90

The End User's SystemWhat 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

Page 91: JavaOne 2009 Deploying Apps for Consumers Bof5150

91

Determining the End User's NeedsUse 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

Page 92: JavaOne 2009 Deploying Apps for Consumers Bof5150

92

When Java Needs to be InstalledVarious 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

Page 93: JavaOne 2009 Deploying Apps for Consumers Bof5150

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

Page 94: JavaOne 2009 Deploying Apps for Consumers Bof5150

94

java.com Manual Download

Online/IFTW installer for Windows

Offline installer for Windows

Page 95: JavaOne 2009 Deploying Apps for Consumers Bof5150

95

Get the User StartedHow 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

Page 96: JavaOne 2009 Deploying Apps for Consumers Bof5150

96

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

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

Page 97: JavaOne 2009 Deploying Apps for Consumers Bof5150

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="my_applet.jar" code="MyApplet" width="300" height="300">

<PARAM name="draggable" value="true">

</APPLET>

Page 98: JavaOne 2009 Deploying Apps for Consumers Bof5150

98

Menus, Shortcuts, Help

<shortcut online="true"> <desktop /> <menu submenu="Corp Apps"/></shortcut>

<information> <title> MyApp </title> <homepage href="myapp.html"></information>

Page 99: JavaOne 2009 Deploying Apps for Consumers Bof5150

99

Security DialogsWhen 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 SessionUpcoming SessionUpcoming SessionNew Security Features in JDK™ Releases 6 and 7 (BOF-5102) Wednesday June 03 7:45PM

Page 100: JavaOne 2009 Deploying Apps for Consumers Bof5150

100

Dealing with the UnexpectedHelp 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)