30

Natural user interface What is Next Gen? Instan t Multitasking

Embed Size (px)

Citation preview

Page 1: Natural user interface What is Next Gen? Instan t Multitasking
Page 2: Natural user interface What is Next Gen? Instan t Multitasking

Gersh PayzerSenior Software DeveloperBuilding Xbox One apps using HTML and JavaScript

Building Xbox One apps using HTML and JavaScript

2-647

Page 3: Natural user interface What is Next Gen? Instan t Multitasking

Meet the Xbox One App Platform10 foot experienceControllerGestureVoice

Agenda

Page 4: Natural user interface What is Next Gen? Instan t Multitasking

Natural user interface

What is “Next Gen”?

InstantMultitasking

Page 5: Natural user interface What is Next Gen? Instan t Multitasking

Multi-OS Architecture

Exclusive partition

Host OS

Shared partition (Windows)

apps

Xbox Shell

System Services

OS

Page 6: Natural user interface What is Next Gen? Instan t Multitasking

HTML 5 and CSS 3 (IE 10) WinJS and the Windows Runtime Full-access to Xbox APIs from JavaScript:

Kinect SmartGlass Controller Etc.

C++ via WinRT

HTML 5 Platform

DirectX/C++

Page 7: Natural user interface What is Next Gen? Instan t Multitasking

ListView - an example of porting to Xbox

Page 8: Natural user interface What is Next Gen? Instan t Multitasking

Consider user input Controller Voice Gesture

“10 ft.” UX

What’s involved in porting from the web?

Page 9: Natural user interface What is Next Gen? Instan t Multitasking

Controller

Page 10: Natural user interface What is Next Gen? Instan t Multitasking

Use conventions and keep it simple: A – select B – cancel/go back Left thumbstick/DPad – directional navigation

Always set default focus Remember the user’s last focus Use onkeyup in most cases Only use onkeydown for repeatable

actions

Controller design considerations

Page 11: Natural user interface What is Next Gen? Instan t Multitasking

Use automatic focus Respond to the click event for buttons

(oninvoked event for WinJS controls)

Reading controller input onkeydown / onkeyup events

Polling API (for games)

How to handle controller input

button.addEventListener("keyup", function (ev) { if (ev.keyCode === WinJS.Utilities.Key.gamepadA) { // Respond to the A button being pressed } }, false);

Page 12: Natural user interface What is Next Gen? Instan t Multitasking

Automatic focus demo

Page 13: Natural user interface What is Next Gen? Instan t Multitasking

Gesture

Page 14: Natural user interface What is Next Gen? Instan t Multitasking

FEATURED MOVIES

Home Movies TVPOPULAR TV SHOWS

Page 15: Natural user interface What is Next Gen? Instan t Multitasking

Gesture demo

Page 16: Natural user interface What is Next Gen? Instan t Multitasking

Hard to hit targets Small buttons

Ideal size: 200px by 200px or greater Min size: 100px by 100px

Buttons on the edges of the screen. Worst is the bottom

Mouse !== Pointer/Touch/Gesture Strategies

Increase hittable area without increasing button size

Gesture design considerations

Page 17: Natural user interface What is Next Gen? Instan t Multitasking

The user’s hand is a Pointer to your app

Touch interaction engine (direct manipulation)

Hand tracking

App code System rendered cursor

Page 18: Natural user interface What is Next Gen? Instan t Multitasking

“Attraction”:

How to use gesture

button, input, select, a, .win-focusable { -ms-attraction: 0px 0px 0px 0px;}

button { -ms-attraction: "none";}

Page 19: Natural user interface What is Next Gen? Instan t Multitasking

GestureRecognizer class Visual Gesture Builder Hand state Body data Depth data

Advanced topics

Page 20: Natural user interface What is Next Gen? Instan t Multitasking

Voice

Page 21: Natural user interface What is Next Gen? Instan t Multitasking

Media Tile856 x 424

Media Tile 424 x 208

Media Tile 424 x 208

More Popular TV Shows

FEATURED MOVIES

Home Movies TV

More Featured Movies

POPULAR TV SHOWS

VUI title text is Xbox Green, with a 64px high full-width background

Two rows are used for smaller tiles

Do not truncate titles as they are not sp…

Avoid S1E2 or v2 abbreviations

Hyphens, colons, and special characters should not be used for VUI

VUI Title

VUI Title

VUI TitleLong titles should be shortened for VUI

STOP LISTENING

Page 22: Natural user interface What is Next Gen? Instan t Multitasking

Dynamic versus static phrases Too many phrases (greater than 20) Too many characters per phrase (more than 64)

Consider alternate phrases “Add to My Contoso Instant Queue” “Add to queue”

Words that are not actually pronounceable (P!nk, Apt.) Numbers are okay though Consider using “Item 1”, “Item 2”, etc

Is your target audience mostly kids?

Voice design considerations

Page 23: Natural user interface What is Next Gen? Instan t Multitasking

Voice demo

Page 24: Natural user interface What is Next Gen? Instan t Multitasking

Voice under the hood

<div data-win-voice="{ srcElement: select(‘.display-text’), targetElement: select(‘.win-voice-activetext’) }" data-win-control="XboxJS.UI.ItemContainer">

<div class="display-text">Play</div> </div>

<div data-win-voice="{ srcElement: select('.display-text'), targetElement: select('.win-voice-activetext'), handler: playArtist, pronunciation: ‘M N M' confidence: 0.7, }" data-win-control="XboxJS.UI.ItemContainer"> <div class="display-text">Play EMINEM</div> <div class="voice-text"></div> </div>

<button data-win-voice="{ phrase: 'play' }">play</button>

Page 25: Natural user interface What is Next Gen? Instan t Multitasking

Voice under the hood

Text Text

XboxJS.UI.Voice

2. Grab source text 4. Style bling text

1. User says “Xbox…”

3. Register phrases & function callbacks

Windows.Xbox.Speech

Page 26: Natural user interface What is Next Gen? Instan t Multitasking

Xbox One and Kinect sessions at //Build!Time Slot Room Presenter Code Session Title

Wed, April 2nd 1:00 - 2:00 3024

Nikola Metulev 2-649 Building Windows, Windows Phone, and Xbox One Apps with HTML/JS/CSS & C++

Wed, April 2nd 2:30 – 3:30 3024 Gersh Payzer 2-647 Building Xbox One Apps using HTML and JavaScript

Wed, April 2nd 4:00 - 5:00 3024 Chris White 2-514 Kinect 101: Introduction to Kinect for Windows

Thurs, April 3rd 1:00 - 2:00 2004 Rob Cameron 3-648 Leveraging Windows Features to build Xbox One App Experiences

Thurs, April 3rd 4:00 - 5:00 2004

Kevin Kennedy 2-532 Bringing Kinect into your Windows Store app

Thurs, April 3rd 5:30 - 6:30 3018 Alain Maillot 2-637 Extending Xbox Experiences to DevicesFri, April 4th 9:00 - 10:00 3014 Eddie Mays 2-650 Designing the Ultimate 10’ Experience

Fri, April 4th 10:30 - 11:30 Hall 1A Frank Savage 2-651 Understanding the Xbox One Game Platform Built on Windows

Fri, April 4th 12:30 - 1:30 3014 Bryan Nealer 2-652 Xbox Music API – Music for every app

Page 27: Natural user interface What is Next Gen? Instan t Multitasking

Partners that offer Developer Services and Middleware are encouraged to join the Xbox Developer Partner Program

Email [email protected] for more information

Xbox Apps Developer Partner Program

Page 28: Natural user interface What is Next Gen? Instan t Multitasking

Xbox One is built on Windows Core

Take advantage of the Windows platform today and build Windows Store/Windows Phone Apps

We have a room at Expert 1:1, come talk to the Xbox Apps team! :-)

Join the Xbox team for an informal social event in the Xbox Loft Thursday 6pm

Summary

Please fill out a session survey!

Page 29: Natural user interface What is Next Gen? Instan t Multitasking

Your Feedback is Important

Fill out an evaluation of this session and help shape future events.

Scan the QR code to evaluate this session on your mobile device.

You’ll also be entered into a daily prize drawing!

Page 30: Natural user interface What is Next Gen? Instan t Multitasking

© 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.