SlideShare a Scribd company logo
1 of 76
Download to read offline
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Build an Interactive Alexa Voice
Experience for Multiple Screens
A L X 3 1 4
Cami Williams
Alexa Evangelist
Alexa Skills
Justin Jeffress
Sr. Solutions Architect
Alexa Skills
Jaime Radwan
Sr. UX Designer
Alexa Skills
Akersh Srivastava
Sr. Solutions Architect
Alexa Skills
Eric Fahsl
Sr. Solutions Architect
Alexa Skills
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Agenda
New Alexa Hosted Skills (Exclusive Beta)
New Alexa Presentation Language
Let’s build a skill with APL
• Understanding Alexa Presentation Language (APL)
• Development tools and framework
• How to implement APL and some of its Features
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Alexa Presentation Language
• Deliver richer interactions
• Control layout and visual expression
• Optimize for tens of millions of
Alexa devices
• Simplify navigation for customers
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Alexa.Presentation.APL.RenderDocument
handlerInput.responseBuilder
.speak(speechText)
.addDirective({
type: 'Alexa.Presentation.APL.RenderDocument',
version: '1.0',
document: require('./mainScreen.json'),
datasources: require('./datasources.json'),
})
.getResponse();
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Components
Components are reusable, self-contained artifacts used to display visual
elements on the screen such as text, images, and sequences
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Components in APL
{
"type": "Text",
"text": "Hello, World!"
"color": "#FF0000"
},
{
"type": "Image",
"source": "http://urlto.helloworld",
"width": "100vw",
"height": "70vh"
},
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Designing for multiple form factors
Speakers Smart screens TVs
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Designing for multiple form factors
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Designing for screens and customers
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Storyboards
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Visual characteristics framework
@viewportProfile
• Describes the properties of the screen on
the device
• Accessible in the skill code and on the
template
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
When clauses
"import": [
{
"name": "alexa-viewport-profiles",
"version": "1.0.0"
}
],
...
{
"when": "${@viewportProfile == @hubRoundSmall}",
"type": "Container",
"items": [...]
},
{
"when": "${@viewportProfile == @hubLandscapeMedium}",
"type": "Container",
"items": [...]
},
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Alexa layouts
Alexa header
Alexa footer
Custom APL
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Alexa layouts
"import": [
{
"name": "alexa-layouts",
"version": "1.0.0"
}
],
...
{
"type": "AlexaHeader",
"headerTitle": "Hello World"
},
{
"type": "Text",
"text": "Hello, World!"
},
{
"type": "AlexaFooter",
"footerHint": "Hint to Hello World"
},
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Activity I
35 Minutes
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Activity I—Recap
When clauses
Editing characteristics per device
Layout components
AlexaHeader
AlexaFooter
Adding your own content
Style matching
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Food Network
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Kayak
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Design best practices for VUI + GUI
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Reusing templates with different data
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Skill and template data source
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Data-binding
• Incorporate user-provided data
• Pass datasource as parameters into main template
• Can be used in when clauses to conditionally inflate components of
templates
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Data-binding
{
"type": "Text",
"text": "There are ${datasource.numPeas} peas in the pod",
"color": "@myBlue",
"size": "${@textSizePrimary * 1.2}"
}
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Data-binding syntax
Strings
${“Double-quoted string”}
${’Single-quoted string”}
${“Inner quote: ” or ‘”}
Nesting
${“Two plus two is ${2+2}”}
Booleans
${true}
${false}
null
${null}
Resources
${@myBlue}
${@isLandscape ? @myWideValue : @myNarrowValue}
Arithmetic operators
Addition, subtraction, multiplication, division, modulo
Booleans
${true}
${false}
Logical operators
${true || false} // true
${true && false} // false
${!true} // false
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Activity II
25 Minutes
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Activity II - Recap
• AlexaHeader
• Container
• Back button
• Title
• Subtitle
• Icon
• Data-binding
• Populate the grid with live data from a data source
• Hardcoded list or API
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Food Network
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Food Network
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Design best practices for Hints
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Sauce Boss Hints
Try “Alexa, how do I make pesto?”
Try “Echo, how do I make pesto?”
Try “Computer, how do I make pesto?”
Try “Amazon, how do I make pesto?”
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Transformations
• Part of the datasource
• Transforms entities of the
datasource to different APL types
• Inflated in the main template
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AlexaFooter Hints
"import": [
{
"name": "alexa-layouts",
"version": "1.0.0"
}
],
...
{
"type": "AlexaFooter",
"footerHint": "${datasource.sauceBossData.properties.hintString}"
},
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Hint Transformer
{
"sauceBossData": {
"type": "object",
"properties": {
"hintString" : "how do I make pesto?"
},
"transformers": [
{
"inputPath": "hintString",
"transformer": "textToHint"
}
]
}
}
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Design best practices for SpeakItem
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Commands
• Directive sent alongside the APL
template
• Change the visual or audio
presentation of the components
• Applied alongside transformations
and data binding
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
SpeakItem
• Sync what Alexa says with the on-screen text
• Auto-scroll spoken text into view
• Control how text is highlighted
• Customize minimum highlight duration
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Synchronized Speech Text Component
{
"type": "Text",
"id": "synchronizedSpeechComponentId",
"text": "${payload.sauceBossData.properties.synchronizedText}",
"speech": "${payload.sauceBossData.properties.synchronizedSpeech}",
"fontSize": "50px"
}
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Synchronized Speech Text Component
{
"type": "Text",
"id": "synchronizedSpeechComponentId",
"text": "${payload.sauceBossData.properties.synchronizedText}",
"speech": "${payload.sauceBossData.properties.synchronizedSpeech}",
"fontSize": "50px"
}
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Synchronized Speech Transformer
{
"sauceBossData": {
"type": "object",
"properties": {
"recipeSsml": "<speak>This is a recipe Alexa says synchronized with the Text
Component.</speak>",
},
"transformers": [
{
"inputPath": "recipeSsml",
"outputName": "synchronizedText",
"transformer": "ssmlToText"
},
{
"inputPath": "recipeSsml",
"outputName": "synchronizedSpeech",
"transformer": "ssmlToSpeech"
}
]
}
}
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Synchronized Speech Transformer
{
"sauceBossData": {
"type": "object",
"properties": {
"recipeSsml": "<speak>This is a recipe Alexa says synchronized with the Text
Component.</speak>",
},
"transformers": [
{
"inputPath": "recipeSsml",
"outputName": "synchronizedText",
"transformer": "ssmlToText"
},
{
"inputPath": "recipeSsml",
"outputName": "synchronizedSpeech",
"transformer": "ssmlToSpeech"
}
]
}
}
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Synchronized Speech Command
handlerInput.responseBuilder
.speak(speechText)
.addDirective({
type: 'Alexa.Presentation.APL.RenderDocument',
token: 'synchronizedTextToken',
document: require('./mainScreen.json'),
datasources: require('./datasources.json')
})
.addDirective({
type: 'Alexa.Presentation.APL.ExecuteCommands',
token: 'synchronizedTextToken',
commands: [
{
type: 'SpeakItem',
componentId: 'synchronizedSpeechComponentId',
highlightMode: 'line'
}
]
})
.getResponse();
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Synchronized Speech Command
handlerInput.responseBuilder
.speak(speechText)
.addDirective({
type: 'Alexa.Presentation.APL.RenderDocument',
token: 'synchronizedTextToken',
document: require('./mainScreen.json'),
datasources: require('./datasources.json')
})
.addDirective({
type: 'Alexa.Presentation.APL.ExecuteCommands',
token: 'synchronizedTextToken',
commands: [
{
type: 'SpeakItem',
componentId: 'synchronizedSpeechComponentId',
highlightMode: 'line'
}
]
})
.getResponse();
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Synchronized Speech Command
handlerInput.responseBuilder
.speak(speechText)
.addDirective({
type: 'Alexa.Presentation.APL.RenderDocument',
token: 'synchronizedTextToken',
document: require('./mainScreen.json'),
datasources: require('./datasources.json')
})
.addDirective({
type: 'Alexa.Presentation.APL.ExecuteCommands',
token: 'synchronizedTextToken',
commands: [
{
type: 'SpeakItem',
componentId: 'synchronizedSpeechComponentId',
highlightMode: 'line'
}
]
})
.getResponse();
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Activity III
25 Minutes
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Activity III - Recap
Built a layout from scratch
Used data-binding to provide
Title
Image
Text
Used textToHint to transform text
Added SpeakItem support for text
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
FX network
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Food Network
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Food Network
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Design best practices for lists
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Sequences
Repeats the formatting defined by one or more components for multiple
entities of data
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Sequences
{
"type": "Sequence",
"scrollDirection": "vertical",
"data": "${listData}",
"numbered": true,
"items": [
{
"type": "Text",
"text": "${data.text}"
}
]
}
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Design best practices for touch
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
TouchWrappers
• Wraps a single child
• Responds to touch events
• Commonly used in lists where each
item can be touched
• Can be toggled on and off
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Defining TouchWrappers
{
"type": "TouchWrapper",
"item": {
"type": "Text",
"text": "Honey Mustard"
"color": "#66DFFF",
"fontSize": 30
}, ...
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Defining TouchWrappers - onPress
...
"onPress": {
"type": "SendEvent",
"arguments": [
"itemPressed",
"honeyMustard"
]
}
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
TouchWrapper Events in Skill
• Check for Display.UserEvent
• Access any params
• Provide a response
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Defining TouchWrappers - Receiving an event
const itemPressedHandler = {
canHandle(handlerInput) {
const request = handlerInput.requestEnvelope.request;
return request.type === 'Display.UserEvent'
&& request.arguments.length > 0
&& request.arguments[0] === 'itemPressed';
},
...
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Activity IV
BONUS!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Activity IV - Recap
• Add Touch to documents
• Bonus
• Created a custom help screen
• Optimized list scroll direction based on viewport
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon Storytime
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon Storytime
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
What did we just do
Thank you!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Cami Williams
Alexa Evangelist
Alexa Skills
Akersh Srivastava
Sr. Solutions Architect
Alexa Skills
Eric Fahsl
Sr. Solutions Architect
Alexa Skills
Jaime Radwan
Sr. UX Designer
Alexa Skills
Justin Jeffress
Sr. Solutions Architect
Alexa Skills
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Related breakouts
Monday, November 26
ALX313-R Use Alexa to Reach Millions of New Customers by Developing for Multiple Screens
12:15PM – 1:15PM | Bellagio
Tuesday, November 27
ALX306-R Everything You Wanted to Know about Developing for Voice Using Alexa
8:30AM – 9:30AM | Aria
Tuesday, November 27
ALX201 Alexa Everywhere: A Year in Review
2:30PM – 3:30PM | Aria
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Compete for $150k in total prizing.
Visit alexa.design/multimodalchallenge to learn more.
Alexa Skills Challenge: Multimodal
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

More Related Content

What's hot

Simplify Your Front End Apps with Serverless Backend in the Cloud.
Simplify Your Front End Apps with Serverless Backend in the Cloud.Simplify Your Front End Apps with Serverless Backend in the Cloud.
Simplify Your Front End Apps with Serverless Backend in the Cloud.Amazon Web Services
 
Build Models for Aerial Images Using Amazon SageMaker (AIM334) - AWS re:Inven...
Build Models for Aerial Images Using Amazon SageMaker (AIM334) - AWS re:Inven...Build Models for Aerial Images Using Amazon SageMaker (AIM334) - AWS re:Inven...
Build Models for Aerial Images Using Amazon SageMaker (AIM334) - AWS re:Inven...Amazon Web Services
 
How Websites go Serverless - WebSummit Lisbon 2018
How Websites go Serverless - WebSummit Lisbon 2018How Websites go Serverless - WebSummit Lisbon 2018
How Websites go Serverless - WebSummit Lisbon 2018Boaz Ziniman
 
AWS Startup Day Kyiv - AI/ML services for developers
AWS Startup Day Kyiv - AI/ML services for developersAWS Startup Day Kyiv - AI/ML services for developers
AWS Startup Day Kyiv - AI/ML services for developersAmazon Web Services
 
Build a Visual Search Engine Using Amazon SageMaker and AWS Fargate (AIM341) ...
Build a Visual Search Engine Using Amazon SageMaker and AWS Fargate (AIM341) ...Build a Visual Search Engine Using Amazon SageMaker and AWS Fargate (AIM341) ...
Build a Visual Search Engine Using Amazon SageMaker and AWS Fargate (AIM341) ...Amazon Web Services
 
Broadcasting the World's Largest Sporting Events: AWS Media Services When It ...
Broadcasting the World's Largest Sporting Events: AWS Media Services When It ...Broadcasting the World's Largest Sporting Events: AWS Media Services When It ...
Broadcasting the World's Largest Sporting Events: AWS Media Services When It ...Amazon Web Services
 
Rapid API Prototyping Using Serverless Backend in the Cloud
Rapid API Prototyping Using Serverless Backend in the CloudRapid API Prototyping Using Serverless Backend in the Cloud
Rapid API Prototyping Using Serverless Backend in the CloudAmazon Web Services
 
From Idea to Customers: Developing Modern Cloud-Enabled Apps with AWS (MOB201...
From Idea to Customers: Developing Modern Cloud-Enabled Apps with AWS (MOB201...From Idea to Customers: Developing Modern Cloud-Enabled Apps with AWS (MOB201...
From Idea to Customers: Developing Modern Cloud-Enabled Apps with AWS (MOB201...Amazon Web Services
 
Leadership Session: Developing Mobile & Web Apps on AWS (MOB202-L) - AWS re:I...
Leadership Session: Developing Mobile & Web Apps on AWS (MOB202-L) - AWS re:I...Leadership Session: Developing Mobile & Web Apps on AWS (MOB202-L) - AWS re:I...
Leadership Session: Developing Mobile & Web Apps on AWS (MOB202-L) - AWS re:I...Amazon Web Services
 
Build, Train, and Deploy ML Models Quickly and Easily with Amazon SageMaker, ...
Build, Train, and Deploy ML Models Quickly and Easily with Amazon SageMaker, ...Build, Train, and Deploy ML Models Quickly and Easily with Amazon SageMaker, ...
Build, Train, and Deploy ML Models Quickly and Easily with Amazon SageMaker, ...Amazon Web Services
 
Build a Voice-Based Chatbot for Your Amazon Connect Contact Center
Build a Voice-Based Chatbot for Your Amazon Connect Contact CenterBuild a Voice-Based Chatbot for Your Amazon Connect Contact Center
Build a Voice-Based Chatbot for Your Amazon Connect Contact CenterAmazon Web Services
 
Building a Serverless AI Powered Twitter Bot: Collision 2018
Building a Serverless AI Powered Twitter Bot: Collision 2018Building a Serverless AI Powered Twitter Bot: Collision 2018
Building a Serverless AI Powered Twitter Bot: Collision 2018Amazon Web Services
 
ALB User Authentication: Identity Management at Scale with Netflix (NET204) -...
ALB User Authentication: Identity Management at Scale with Netflix (NET204) -...ALB User Authentication: Identity Management at Scale with Netflix (NET204) -...
ALB User Authentication: Identity Management at Scale with Netflix (NET204) -...Amazon Web Services
 
Tailor Your Alexa Skill Responses to Deliver Truly Personal Experiences (ALX3...
Tailor Your Alexa Skill Responses to Deliver Truly Personal Experiences (ALX3...Tailor Your Alexa Skill Responses to Deliver Truly Personal Experiences (ALX3...
Tailor Your Alexa Skill Responses to Deliver Truly Personal Experiences (ALX3...Amazon Web Services
 
Deep Learning Applications Using PyTorch, Featuring Facebook (AIM402-R) - AWS...
Deep Learning Applications Using PyTorch, Featuring Facebook (AIM402-R) - AWS...Deep Learning Applications Using PyTorch, Featuring Facebook (AIM402-R) - AWS...
Deep Learning Applications Using PyTorch, Featuring Facebook (AIM402-R) - AWS...Amazon Web Services
 
Build a Serverless Backend for Requesting a Ride
Build a Serverless Backend for Requesting a RideBuild a Serverless Backend for Requesting a Ride
Build a Serverless Backend for Requesting a RideAmazon Web Services
 
Vonage & Aspect: Transform Real-Time Communications & Customer Engagement (TL...
Vonage & Aspect: Transform Real-Time Communications & Customer Engagement (TL...Vonage & Aspect: Transform Real-Time Communications & Customer Engagement (TL...
Vonage & Aspect: Transform Real-Time Communications & Customer Engagement (TL...Amazon Web Services
 
Build a Cloud-Connected iOS Game with AWS (MOB308) - AWS re:Invent 2018
Build a Cloud-Connected iOS Game with AWS (MOB308) - AWS re:Invent 2018Build a Cloud-Connected iOS Game with AWS (MOB308) - AWS re:Invent 2018
Build a Cloud-Connected iOS Game with AWS (MOB308) - AWS re:Invent 2018Amazon Web Services
 
AWS Machine Learning Language Services
AWS Machine Learning Language ServicesAWS Machine Learning Language Services
AWS Machine Learning Language ServicesAmazon Web Services
 
Real-Time Personalized Customer Experiences at Bonobos (RET203) - AWS re:Inve...
Real-Time Personalized Customer Experiences at Bonobos (RET203) - AWS re:Inve...Real-Time Personalized Customer Experiences at Bonobos (RET203) - AWS re:Inve...
Real-Time Personalized Customer Experiences at Bonobos (RET203) - AWS re:Inve...Amazon Web Services
 

What's hot (20)

Simplify Your Front End Apps with Serverless Backend in the Cloud.
Simplify Your Front End Apps with Serverless Backend in the Cloud.Simplify Your Front End Apps with Serverless Backend in the Cloud.
Simplify Your Front End Apps with Serverless Backend in the Cloud.
 
Build Models for Aerial Images Using Amazon SageMaker (AIM334) - AWS re:Inven...
Build Models for Aerial Images Using Amazon SageMaker (AIM334) - AWS re:Inven...Build Models for Aerial Images Using Amazon SageMaker (AIM334) - AWS re:Inven...
Build Models for Aerial Images Using Amazon SageMaker (AIM334) - AWS re:Inven...
 
How Websites go Serverless - WebSummit Lisbon 2018
How Websites go Serverless - WebSummit Lisbon 2018How Websites go Serverless - WebSummit Lisbon 2018
How Websites go Serverless - WebSummit Lisbon 2018
 
AWS Startup Day Kyiv - AI/ML services for developers
AWS Startup Day Kyiv - AI/ML services for developersAWS Startup Day Kyiv - AI/ML services for developers
AWS Startup Day Kyiv - AI/ML services for developers
 
Build a Visual Search Engine Using Amazon SageMaker and AWS Fargate (AIM341) ...
Build a Visual Search Engine Using Amazon SageMaker and AWS Fargate (AIM341) ...Build a Visual Search Engine Using Amazon SageMaker and AWS Fargate (AIM341) ...
Build a Visual Search Engine Using Amazon SageMaker and AWS Fargate (AIM341) ...
 
Broadcasting the World's Largest Sporting Events: AWS Media Services When It ...
Broadcasting the World's Largest Sporting Events: AWS Media Services When It ...Broadcasting the World's Largest Sporting Events: AWS Media Services When It ...
Broadcasting the World's Largest Sporting Events: AWS Media Services When It ...
 
Rapid API Prototyping Using Serverless Backend in the Cloud
Rapid API Prototyping Using Serverless Backend in the CloudRapid API Prototyping Using Serverless Backend in the Cloud
Rapid API Prototyping Using Serverless Backend in the Cloud
 
From Idea to Customers: Developing Modern Cloud-Enabled Apps with AWS (MOB201...
From Idea to Customers: Developing Modern Cloud-Enabled Apps with AWS (MOB201...From Idea to Customers: Developing Modern Cloud-Enabled Apps with AWS (MOB201...
From Idea to Customers: Developing Modern Cloud-Enabled Apps with AWS (MOB201...
 
Leadership Session: Developing Mobile & Web Apps on AWS (MOB202-L) - AWS re:I...
Leadership Session: Developing Mobile & Web Apps on AWS (MOB202-L) - AWS re:I...Leadership Session: Developing Mobile & Web Apps on AWS (MOB202-L) - AWS re:I...
Leadership Session: Developing Mobile & Web Apps on AWS (MOB202-L) - AWS re:I...
 
Build, Train, and Deploy ML Models Quickly and Easily with Amazon SageMaker, ...
Build, Train, and Deploy ML Models Quickly and Easily with Amazon SageMaker, ...Build, Train, and Deploy ML Models Quickly and Easily with Amazon SageMaker, ...
Build, Train, and Deploy ML Models Quickly and Easily with Amazon SageMaker, ...
 
Build a Voice-Based Chatbot for Your Amazon Connect Contact Center
Build a Voice-Based Chatbot for Your Amazon Connect Contact CenterBuild a Voice-Based Chatbot for Your Amazon Connect Contact Center
Build a Voice-Based Chatbot for Your Amazon Connect Contact Center
 
Building a Serverless AI Powered Twitter Bot: Collision 2018
Building a Serverless AI Powered Twitter Bot: Collision 2018Building a Serverless AI Powered Twitter Bot: Collision 2018
Building a Serverless AI Powered Twitter Bot: Collision 2018
 
ALB User Authentication: Identity Management at Scale with Netflix (NET204) -...
ALB User Authentication: Identity Management at Scale with Netflix (NET204) -...ALB User Authentication: Identity Management at Scale with Netflix (NET204) -...
ALB User Authentication: Identity Management at Scale with Netflix (NET204) -...
 
Tailor Your Alexa Skill Responses to Deliver Truly Personal Experiences (ALX3...
Tailor Your Alexa Skill Responses to Deliver Truly Personal Experiences (ALX3...Tailor Your Alexa Skill Responses to Deliver Truly Personal Experiences (ALX3...
Tailor Your Alexa Skill Responses to Deliver Truly Personal Experiences (ALX3...
 
Deep Learning Applications Using PyTorch, Featuring Facebook (AIM402-R) - AWS...
Deep Learning Applications Using PyTorch, Featuring Facebook (AIM402-R) - AWS...Deep Learning Applications Using PyTorch, Featuring Facebook (AIM402-R) - AWS...
Deep Learning Applications Using PyTorch, Featuring Facebook (AIM402-R) - AWS...
 
Build a Serverless Backend for Requesting a Ride
Build a Serverless Backend for Requesting a RideBuild a Serverless Backend for Requesting a Ride
Build a Serverless Backend for Requesting a Ride
 
Vonage & Aspect: Transform Real-Time Communications & Customer Engagement (TL...
Vonage & Aspect: Transform Real-Time Communications & Customer Engagement (TL...Vonage & Aspect: Transform Real-Time Communications & Customer Engagement (TL...
Vonage & Aspect: Transform Real-Time Communications & Customer Engagement (TL...
 
Build a Cloud-Connected iOS Game with AWS (MOB308) - AWS re:Invent 2018
Build a Cloud-Connected iOS Game with AWS (MOB308) - AWS re:Invent 2018Build a Cloud-Connected iOS Game with AWS (MOB308) - AWS re:Invent 2018
Build a Cloud-Connected iOS Game with AWS (MOB308) - AWS re:Invent 2018
 
AWS Machine Learning Language Services
AWS Machine Learning Language ServicesAWS Machine Learning Language Services
AWS Machine Learning Language Services
 
Real-Time Personalized Customer Experiences at Bonobos (RET203) - AWS re:Inve...
Real-Time Personalized Customer Experiences at Bonobos (RET203) - AWS re:Inve...Real-Time Personalized Customer Experiences at Bonobos (RET203) - AWS re:Inve...
Real-Time Personalized Customer Experiences at Bonobos (RET203) - AWS re:Inve...
 

Similar to Build an Interactive Alexa Voice Experience for Multiple Screens (ALX314-R2) - AWS re:Invent 2018

Simplify your Web & Mobile applications with cloud-based serverless backends
Simplify your Web & Mobile applicationswith cloud-based serverless backendsSimplify your Web & Mobile applicationswith cloud-based serverless backends
Simplify your Web & Mobile applications with cloud-based serverless backendsSébastien ☁ Stormacq
 
Take Mobile and Web Apps to the Next Level with AWS AppSync and AWS Amplify
Take Mobile and Web Apps to the Next Level with AWS AppSync and AWS Amplify Take Mobile and Web Apps to the Next Level with AWS AppSync and AWS Amplify
Take Mobile and Web Apps to the Next Level with AWS AppSync and AWS Amplify Amazon Web Services
 
Introduction to GraphQL and AWS Appsync on AWS - iOS
Introduction to GraphQL and AWS Appsync on AWS - iOSIntroduction to GraphQL and AWS Appsync on AWS - iOS
Introduction to GraphQL and AWS Appsync on AWS - iOSAmazon Web Services
 
Building mobile apps that can automatically scale globally to millions of use...
Building mobile apps that can automatically scale globally to millions of use...Building mobile apps that can automatically scale globally to millions of use...
Building mobile apps that can automatically scale globally to millions of use...AWS Germany
 
Monetize Your Mobile App with Amazon Mobile Ads (MOB311) - AWS reInvent 2018.pdf
Monetize Your Mobile App with Amazon Mobile Ads (MOB311) - AWS reInvent 2018.pdfMonetize Your Mobile App with Amazon Mobile Ads (MOB311) - AWS reInvent 2018.pdf
Monetize Your Mobile App with Amazon Mobile Ads (MOB311) - AWS reInvent 2018.pdfAmazon Web Services
 
Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...
Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...
Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...Amazon Web Services
 
AppSync in real world - pitfalls, unexpected benefits & lessons learnt
AppSync in real world - pitfalls, unexpected benefits & lessons learntAppSync in real world - pitfalls, unexpected benefits & lessons learnt
AppSync in real world - pitfalls, unexpected benefits & lessons learntAWS User Group Bengaluru
 
Neptune, the Graph Database | AWS Floor28
Neptune, the Graph Database | AWS Floor28Neptune, the Graph Database | AWS Floor28
Neptune, the Graph Database | AWS Floor28Amazon Web Services
 
Develop Cross-Platform Mobile Apps with React Native, GraphQL, & AWS (MOB324)...
Develop Cross-Platform Mobile Apps with React Native, GraphQL, & AWS (MOB324)...Develop Cross-Platform Mobile Apps with React Native, GraphQL, & AWS (MOB324)...
Develop Cross-Platform Mobile Apps with React Native, GraphQL, & AWS (MOB324)...Amazon Web Services
 
善用 GraphQL 與 AWS AppSync 讓您的 Progressive Web App (PWA) 加速進化 (Level 200)
善用  GraphQL 與 AWS AppSync 讓您的  Progressive Web App (PWA) 加速進化 (Level 200)善用  GraphQL 與 AWS AppSync 讓您的  Progressive Web App (PWA) 加速進化 (Level 200)
善用 GraphQL 與 AWS AppSync 讓您的 Progressive Web App (PWA) 加速進化 (Level 200)Amazon Web Services
 
Ten Tips And Tricks for Improving Your GraphQL API with AWS AppSync (MOB401) ...
Ten Tips And Tricks for Improving Your GraphQL API with AWS AppSync (MOB401) ...Ten Tips And Tricks for Improving Your GraphQL API with AWS AppSync (MOB401) ...
Ten Tips And Tricks for Improving Your GraphQL API with AWS AppSync (MOB401) ...Amazon Web Services
 
Simpler by Design: Build a Better GraphQL API for Your Next App by Writing Le...
Simpler by Design: Build a Better GraphQL API for Your Next App by Writing Le...Simpler by Design: Build a Better GraphQL API for Your Next App by Writing Le...
Simpler by Design: Build a Better GraphQL API for Your Next App by Writing Le...Amazon Web Services
 
Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018
Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018
Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018Amazon Web Services
 
Taking your Progressive Web App to the Next Level with GraphQL and AWS AppSync
Taking your Progressive Web App to the Next Level with GraphQL and AWS AppSyncTaking your Progressive Web App to the Next Level with GraphQL and AWS AppSync
Taking your Progressive Web App to the Next Level with GraphQL and AWS AppSyncAmazon Web Services
 
Serverless APIs and you
Serverless APIs and youServerless APIs and you
Serverless APIs and youJames Beswick
 
Building Real-time Serverless Backends
Building Real-time Serverless BackendsBuilding Real-time Serverless Backends
Building Real-time Serverless BackendsAmazon Web Services
 
Build your APPs in Lean and Agile Way using AWS Amplify
Build your APPs in Lean and Agile Way using AWS AmplifyBuild your APPs in Lean and Agile Way using AWS Amplify
Build your APPs in Lean and Agile Way using AWS AmplifyAmazon Web Services
 
Automate your Amazon SageMaker Workflows (July 2019)
Automate your Amazon SageMaker Workflows (July 2019)Automate your Amazon SageMaker Workflows (July 2019)
Automate your Amazon SageMaker Workflows (July 2019)Julien SIMON
 
Building Real-time Serverless Backends with GraphQL
Building Real-time Serverless Backends with GraphQLBuilding Real-time Serverless Backends with GraphQL
Building Real-time Serverless Backends with GraphQLAmazon Web Services
 
"Integrate your front end apps with serverless backend in the cloud", Sebasti...
"Integrate your front end apps with serverless backend in the cloud", Sebasti..."Integrate your front end apps with serverless backend in the cloud", Sebasti...
"Integrate your front end apps with serverless backend in the cloud", Sebasti...Provectus
 

Similar to Build an Interactive Alexa Voice Experience for Multiple Screens (ALX314-R2) - AWS re:Invent 2018 (20)

Simplify your Web & Mobile applications with cloud-based serverless backends
Simplify your Web & Mobile applicationswith cloud-based serverless backendsSimplify your Web & Mobile applicationswith cloud-based serverless backends
Simplify your Web & Mobile applications with cloud-based serverless backends
 
Take Mobile and Web Apps to the Next Level with AWS AppSync and AWS Amplify
Take Mobile and Web Apps to the Next Level with AWS AppSync and AWS Amplify Take Mobile and Web Apps to the Next Level with AWS AppSync and AWS Amplify
Take Mobile and Web Apps to the Next Level with AWS AppSync and AWS Amplify
 
Introduction to GraphQL and AWS Appsync on AWS - iOS
Introduction to GraphQL and AWS Appsync on AWS - iOSIntroduction to GraphQL and AWS Appsync on AWS - iOS
Introduction to GraphQL and AWS Appsync on AWS - iOS
 
Building mobile apps that can automatically scale globally to millions of use...
Building mobile apps that can automatically scale globally to millions of use...Building mobile apps that can automatically scale globally to millions of use...
Building mobile apps that can automatically scale globally to millions of use...
 
Monetize Your Mobile App with Amazon Mobile Ads (MOB311) - AWS reInvent 2018.pdf
Monetize Your Mobile App with Amazon Mobile Ads (MOB311) - AWS reInvent 2018.pdfMonetize Your Mobile App with Amazon Mobile Ads (MOB311) - AWS reInvent 2018.pdf
Monetize Your Mobile App with Amazon Mobile Ads (MOB311) - AWS reInvent 2018.pdf
 
Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...
Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...
Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...
 
AppSync in real world - pitfalls, unexpected benefits & lessons learnt
AppSync in real world - pitfalls, unexpected benefits & lessons learntAppSync in real world - pitfalls, unexpected benefits & lessons learnt
AppSync in real world - pitfalls, unexpected benefits & lessons learnt
 
Neptune, the Graph Database | AWS Floor28
Neptune, the Graph Database | AWS Floor28Neptune, the Graph Database | AWS Floor28
Neptune, the Graph Database | AWS Floor28
 
Develop Cross-Platform Mobile Apps with React Native, GraphQL, & AWS (MOB324)...
Develop Cross-Platform Mobile Apps with React Native, GraphQL, & AWS (MOB324)...Develop Cross-Platform Mobile Apps with React Native, GraphQL, & AWS (MOB324)...
Develop Cross-Platform Mobile Apps with React Native, GraphQL, & AWS (MOB324)...
 
善用 GraphQL 與 AWS AppSync 讓您的 Progressive Web App (PWA) 加速進化 (Level 200)
善用  GraphQL 與 AWS AppSync 讓您的  Progressive Web App (PWA) 加速進化 (Level 200)善用  GraphQL 與 AWS AppSync 讓您的  Progressive Web App (PWA) 加速進化 (Level 200)
善用 GraphQL 與 AWS AppSync 讓您的 Progressive Web App (PWA) 加速進化 (Level 200)
 
Ten Tips And Tricks for Improving Your GraphQL API with AWS AppSync (MOB401) ...
Ten Tips And Tricks for Improving Your GraphQL API with AWS AppSync (MOB401) ...Ten Tips And Tricks for Improving Your GraphQL API with AWS AppSync (MOB401) ...
Ten Tips And Tricks for Improving Your GraphQL API with AWS AppSync (MOB401) ...
 
Simpler by Design: Build a Better GraphQL API for Your Next App by Writing Le...
Simpler by Design: Build a Better GraphQL API for Your Next App by Writing Le...Simpler by Design: Build a Better GraphQL API for Your Next App by Writing Le...
Simpler by Design: Build a Better GraphQL API for Your Next App by Writing Le...
 
Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018
Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018
Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018
 
Taking your Progressive Web App to the Next Level with GraphQL and AWS AppSync
Taking your Progressive Web App to the Next Level with GraphQL and AWS AppSyncTaking your Progressive Web App to the Next Level with GraphQL and AWS AppSync
Taking your Progressive Web App to the Next Level with GraphQL and AWS AppSync
 
Serverless APIs and you
Serverless APIs and youServerless APIs and you
Serverless APIs and you
 
Building Real-time Serverless Backends
Building Real-time Serverless BackendsBuilding Real-time Serverless Backends
Building Real-time Serverless Backends
 
Build your APPs in Lean and Agile Way using AWS Amplify
Build your APPs in Lean and Agile Way using AWS AmplifyBuild your APPs in Lean and Agile Way using AWS Amplify
Build your APPs in Lean and Agile Way using AWS Amplify
 
Automate your Amazon SageMaker Workflows (July 2019)
Automate your Amazon SageMaker Workflows (July 2019)Automate your Amazon SageMaker Workflows (July 2019)
Automate your Amazon SageMaker Workflows (July 2019)
 
Building Real-time Serverless Backends with GraphQL
Building Real-time Serverless Backends with GraphQLBuilding Real-time Serverless Backends with GraphQL
Building Real-time Serverless Backends with GraphQL
 
"Integrate your front end apps with serverless backend in the cloud", Sebasti...
"Integrate your front end apps with serverless backend in the cloud", Sebasti..."Integrate your front end apps with serverless backend in the cloud", Sebasti...
"Integrate your front end apps with serverless backend in the cloud", Sebasti...
 

More from Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

More from Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Build an Interactive Alexa Voice Experience for Multiple Screens (ALX314-R2) - AWS re:Invent 2018

  • 1.
  • 2. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Build an Interactive Alexa Voice Experience for Multiple Screens A L X 3 1 4 Cami Williams Alexa Evangelist Alexa Skills Justin Jeffress Sr. Solutions Architect Alexa Skills Jaime Radwan Sr. UX Designer Alexa Skills Akersh Srivastava Sr. Solutions Architect Alexa Skills Eric Fahsl Sr. Solutions Architect Alexa Skills
  • 3. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 4. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Agenda New Alexa Hosted Skills (Exclusive Beta) New Alexa Presentation Language Let’s build a skill with APL • Understanding Alexa Presentation Language (APL) • Development tools and framework • How to implement APL and some of its Features
  • 5. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 6. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Alexa Presentation Language • Deliver richer interactions • Control layout and visual expression • Optimize for tens of millions of Alexa devices • Simplify navigation for customers
  • 7. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Alexa.Presentation.APL.RenderDocument handlerInput.responseBuilder .speak(speechText) .addDirective({ type: 'Alexa.Presentation.APL.RenderDocument', version: '1.0', document: require('./mainScreen.json'), datasources: require('./datasources.json'), }) .getResponse();
  • 8. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Components Components are reusable, self-contained artifacts used to display visual elements on the screen such as text, images, and sequences
  • 9. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Components in APL { "type": "Text", "text": "Hello, World!" "color": "#FF0000" }, { "type": "Image", "source": "http://urlto.helloworld", "width": "100vw", "height": "70vh" },
  • 10. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 11. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 12. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Designing for multiple form factors Speakers Smart screens TVs
  • 13. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Designing for multiple form factors
  • 14. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Designing for screens and customers
  • 15. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Storyboards
  • 16. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 17. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Visual characteristics framework @viewportProfile • Describes the properties of the screen on the device • Accessible in the skill code and on the template
  • 18. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. When clauses "import": [ { "name": "alexa-viewport-profiles", "version": "1.0.0" } ], ... { "when": "${@viewportProfile == @hubRoundSmall}", "type": "Container", "items": [...] }, { "when": "${@viewportProfile == @hubLandscapeMedium}", "type": "Container", "items": [...] },
  • 19. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Alexa layouts Alexa header Alexa footer Custom APL
  • 20. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Alexa layouts "import": [ { "name": "alexa-layouts", "version": "1.0.0" } ], ... { "type": "AlexaHeader", "headerTitle": "Hello World" }, { "type": "Text", "text": "Hello, World!" }, { "type": "AlexaFooter", "footerHint": "Hint to Hello World" },
  • 21. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Activity I 35 Minutes
  • 22. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Activity I—Recap When clauses Editing characteristics per device Layout components AlexaHeader AlexaFooter Adding your own content Style matching
  • 23. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Food Network
  • 24. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Kayak
  • 25. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 26. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Design best practices for VUI + GUI
  • 27. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Reusing templates with different data
  • 28. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Skill and template data source
  • 29. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Data-binding • Incorporate user-provided data • Pass datasource as parameters into main template • Can be used in when clauses to conditionally inflate components of templates
  • 30. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Data-binding { "type": "Text", "text": "There are ${datasource.numPeas} peas in the pod", "color": "@myBlue", "size": "${@textSizePrimary * 1.2}" }
  • 31. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Data-binding syntax Strings ${“Double-quoted string”} ${’Single-quoted string”} ${“Inner quote: ” or ‘”} Nesting ${“Two plus two is ${2+2}”} Booleans ${true} ${false} null ${null} Resources ${@myBlue} ${@isLandscape ? @myWideValue : @myNarrowValue} Arithmetic operators Addition, subtraction, multiplication, division, modulo Booleans ${true} ${false} Logical operators ${true || false} // true ${true && false} // false ${!true} // false
  • 32. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Activity II 25 Minutes
  • 33. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Activity II - Recap • AlexaHeader • Container • Back button • Title • Subtitle • Icon • Data-binding • Populate the grid with live data from a data source • Hardcoded list or API
  • 34. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Food Network
  • 35. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Food Network
  • 36. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 37. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Design best practices for Hints
  • 38. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Sauce Boss Hints Try “Alexa, how do I make pesto?” Try “Echo, how do I make pesto?” Try “Computer, how do I make pesto?” Try “Amazon, how do I make pesto?”
  • 39. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Transformations • Part of the datasource • Transforms entities of the datasource to different APL types • Inflated in the main template
  • 40. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. AlexaFooter Hints "import": [ { "name": "alexa-layouts", "version": "1.0.0" } ], ... { "type": "AlexaFooter", "footerHint": "${datasource.sauceBossData.properties.hintString}" },
  • 41. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Hint Transformer { "sauceBossData": { "type": "object", "properties": { "hintString" : "how do I make pesto?" }, "transformers": [ { "inputPath": "hintString", "transformer": "textToHint" } ] } }
  • 42. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Design best practices for SpeakItem
  • 43. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Commands • Directive sent alongside the APL template • Change the visual or audio presentation of the components • Applied alongside transformations and data binding
  • 44. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. SpeakItem • Sync what Alexa says with the on-screen text • Auto-scroll spoken text into view • Control how text is highlighted • Customize minimum highlight duration
  • 45. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Synchronized Speech Text Component { "type": "Text", "id": "synchronizedSpeechComponentId", "text": "${payload.sauceBossData.properties.synchronizedText}", "speech": "${payload.sauceBossData.properties.synchronizedSpeech}", "fontSize": "50px" }
  • 46. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Synchronized Speech Text Component { "type": "Text", "id": "synchronizedSpeechComponentId", "text": "${payload.sauceBossData.properties.synchronizedText}", "speech": "${payload.sauceBossData.properties.synchronizedSpeech}", "fontSize": "50px" }
  • 47. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Synchronized Speech Transformer { "sauceBossData": { "type": "object", "properties": { "recipeSsml": "<speak>This is a recipe Alexa says synchronized with the Text Component.</speak>", }, "transformers": [ { "inputPath": "recipeSsml", "outputName": "synchronizedText", "transformer": "ssmlToText" }, { "inputPath": "recipeSsml", "outputName": "synchronizedSpeech", "transformer": "ssmlToSpeech" } ] } }
  • 48. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Synchronized Speech Transformer { "sauceBossData": { "type": "object", "properties": { "recipeSsml": "<speak>This is a recipe Alexa says synchronized with the Text Component.</speak>", }, "transformers": [ { "inputPath": "recipeSsml", "outputName": "synchronizedText", "transformer": "ssmlToText" }, { "inputPath": "recipeSsml", "outputName": "synchronizedSpeech", "transformer": "ssmlToSpeech" } ] } }
  • 49. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Synchronized Speech Command handlerInput.responseBuilder .speak(speechText) .addDirective({ type: 'Alexa.Presentation.APL.RenderDocument', token: 'synchronizedTextToken', document: require('./mainScreen.json'), datasources: require('./datasources.json') }) .addDirective({ type: 'Alexa.Presentation.APL.ExecuteCommands', token: 'synchronizedTextToken', commands: [ { type: 'SpeakItem', componentId: 'synchronizedSpeechComponentId', highlightMode: 'line' } ] }) .getResponse();
  • 50. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Synchronized Speech Command handlerInput.responseBuilder .speak(speechText) .addDirective({ type: 'Alexa.Presentation.APL.RenderDocument', token: 'synchronizedTextToken', document: require('./mainScreen.json'), datasources: require('./datasources.json') }) .addDirective({ type: 'Alexa.Presentation.APL.ExecuteCommands', token: 'synchronizedTextToken', commands: [ { type: 'SpeakItem', componentId: 'synchronizedSpeechComponentId', highlightMode: 'line' } ] }) .getResponse();
  • 51. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Synchronized Speech Command handlerInput.responseBuilder .speak(speechText) .addDirective({ type: 'Alexa.Presentation.APL.RenderDocument', token: 'synchronizedTextToken', document: require('./mainScreen.json'), datasources: require('./datasources.json') }) .addDirective({ type: 'Alexa.Presentation.APL.ExecuteCommands', token: 'synchronizedTextToken', commands: [ { type: 'SpeakItem', componentId: 'synchronizedSpeechComponentId', highlightMode: 'line' } ] }) .getResponse();
  • 52. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Activity III 25 Minutes
  • 53. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Activity III - Recap Built a layout from scratch Used data-binding to provide Title Image Text Used textToHint to transform text Added SpeakItem support for text
  • 54. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. FX network
  • 55. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Food Network
  • 56. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Food Network
  • 57. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 58. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Design best practices for lists
  • 59. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Sequences Repeats the formatting defined by one or more components for multiple entities of data
  • 60. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Sequences { "type": "Sequence", "scrollDirection": "vertical", "data": "${listData}", "numbered": true, "items": [ { "type": "Text", "text": "${data.text}" } ] }
  • 61. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Design best practices for touch
  • 62. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. TouchWrappers • Wraps a single child • Responds to touch events • Commonly used in lists where each item can be touched • Can be toggled on and off
  • 63. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Defining TouchWrappers { "type": "TouchWrapper", "item": { "type": "Text", "text": "Honey Mustard" "color": "#66DFFF", "fontSize": 30 }, ...
  • 64. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Defining TouchWrappers - onPress ... "onPress": { "type": "SendEvent", "arguments": [ "itemPressed", "honeyMustard" ] }
  • 65. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. TouchWrapper Events in Skill • Check for Display.UserEvent • Access any params • Provide a response
  • 66. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Defining TouchWrappers - Receiving an event const itemPressedHandler = { canHandle(handlerInput) { const request = handlerInput.requestEnvelope.request; return request.type === 'Display.UserEvent' && request.arguments.length > 0 && request.arguments[0] === 'itemPressed'; }, ...
  • 67. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Activity IV BONUS!
  • 68. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Activity IV - Recap • Add Touch to documents • Bonus • Created a custom help screen • Optimized list scroll direction based on viewport
  • 69. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Storytime
  • 70. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Storytime
  • 71. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 72. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. What did we just do
  • 73. Thank you! © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Cami Williams Alexa Evangelist Alexa Skills Akersh Srivastava Sr. Solutions Architect Alexa Skills Eric Fahsl Sr. Solutions Architect Alexa Skills Jaime Radwan Sr. UX Designer Alexa Skills Justin Jeffress Sr. Solutions Architect Alexa Skills
  • 74. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Related breakouts Monday, November 26 ALX313-R Use Alexa to Reach Millions of New Customers by Developing for Multiple Screens 12:15PM – 1:15PM | Bellagio Tuesday, November 27 ALX306-R Everything You Wanted to Know about Developing for Voice Using Alexa 8:30AM – 9:30AM | Aria Tuesday, November 27 ALX201 Alexa Everywhere: A Year in Review 2:30PM – 3:30PM | Aria
  • 75. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Compete for $150k in total prizing. Visit alexa.design/multimodalchallenge to learn more. Alexa Skills Challenge: Multimodal
  • 76. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.