applink best practices - ford - track 5 - best practices.pdf · applink best practices elizabeth...

17
APPLINK BEST PRACTICES ELIZABETH HALASH PRODUCT DEVELOPMENT ENGINEER

Upload: ngotruc

Post on 02-Aug-2019

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: APPLINK BEST PRACTICES - Ford - Track 5 - Best Practices.pdf · APPLINK BEST PRACTICES ELIZABETH HALASH PRODUCT DEVELOPMENT ENGINEER. Static Buttons Soft Buttons ... –How to best

APPLINK BEST PRACTICESELIZABETH HALASH

PRODUCT DEVELOPMENT ENGINEER

Page 2: APPLINK BEST PRACTICES - Ford - Track 5 - Best Practices.pdf · APPLINK BEST PRACTICES ELIZABETH HALASH PRODUCT DEVELOPMENT ENGINEER. Static Buttons Soft Buttons ... –How to best

Static Buttons Soft Buttons

Voice Commands

Page 3: APPLINK BEST PRACTICES - Ford - Track 5 - Best Practices.pdf · APPLINK BEST PRACTICES ELIZABETH HALASH PRODUCT DEVELOPMENT ENGINEER. Static Buttons Soft Buttons ... –How to best

• Detecting different displays and graphics support

• Performance in-vehicle

–How to best initialize app

–Options for loading voice commands

• Providing feedback regarding current app status

–Display vs. voice

– Ideally near instant acknowledgment to any user input

• Navigating AppLink in vehicle

• Language Considerations

–Changing app language to match SYNC (19 languages)

–Regional languages

Additional considerations

3

Page 4: APPLINK BEST PRACTICES - Ford - Track 5 - Best Practices.pdf · APPLINK BEST PRACTICES ELIZABETH HALASH PRODUCT DEVELOPMENT ENGINEER. Static Buttons Soft Buttons ... –How to best

• onButtonPress() notification

– Sent to app from SYNC whenever any button is pressed (steering wheel, center stack, touch screen, softbutton)

• LONG vs SHORT Press // BUTTONDOWN vs. BUTTONUP Modes

– Example: SEEK button

• Skip, Thumbs up, Fast forward

• Presets

– Up to 10 (0-9) buttons

– Often used to mimic radio presets with hold & save

• Which hard buttons are available?

– Response to proxy.subscribeButton(ButtonName.PRESET_9, CorrId);

– SYNC will return NOT_SUPPORTED

Buttons

4

Page 5: APPLINK BEST PRACTICES - Ford - Track 5 - Best Practices.pdf · APPLINK BEST PRACTICES ELIZABETH HALASH PRODUCT DEVELOPMENT ENGINEER. Static Buttons Soft Buttons ... –How to best

• MFD displays (3-5 in, color, non-touch)

Softbuttons

5

• Touch screen display implementation:

App can write text, icon (static or dynamic), or both

4 dynamic fields

same

Page 6: APPLINK BEST PRACTICES - Ford - Track 5 - Best Practices.pdf · APPLINK BEST PRACTICES ELIZABETH HALASH PRODUCT DEVELOPMENT ENGINEER. Static Buttons Soft Buttons ... –How to best

• How to use it:

– Register commands you want SYNC to recognize by loading grammars onto the system via either a string of text or phonemes (phonetic sounds, i.e. read vs reed)

• How it works:

– SYNC does the recognition on behalf of the app

– If unsure of what the user said, it will provide an N-best list for the user to choose their command.

– If no match is found, it will ask the user to repeat the utterance.

• Upon successful recognition:

– Positive chime is played

– onCommand() notification is sent to app using a commandID

Using Voice with SYNC

6

Page 7: APPLINK BEST PRACTICES - Ford - Track 5 - Best Practices.pdf · APPLINK BEST PRACTICES ELIZABETH HALASH PRODUCT DEVELOPMENT ENGINEER. Static Buttons Soft Buttons ... –How to best

• SYNC itself comes with embedded, system voice commands that cannot be re-used by an app, such as ‘help,’ ‘exit,’ ‘cancel’

• SYNC executes these commands on behalf of an app

• For example: “<AppName> Help”:

–Option 1Option 1Option 1Option 1: setGlobalProperties() – app populates the help prompt

• App can sent this at any time for contextual help

–Option Option Option Option 2222: Let sync populate this for you with the first few voice grammar you load onto the system.

• Not ideal: the list of commands in the help prompt may vary.

App Commands and SYNC System Commands

7

Page 8: APPLINK BEST PRACTICES - Ford - Track 5 - Best Practices.pdf · APPLINK BEST PRACTICES ELIZABETH HALASH PRODUCT DEVELOPMENT ENGINEER. Static Buttons Soft Buttons ... –How to best

Q: What are the major features/functions of my app?

A: Top-level voice commands (AddCommands()).

Q: Do I use shortcuts, favorites, presets, etc. within my app?

A: Preset buttons in vehicle.

Q: Is there long list(s) of items to select from within your application?

A: Load these as items in a ChoiceSet

– 300 items take about 15-25 seconds to load and slightly slows SYNC’s response to user input during loading.

– Ability to concatenate ChoiceSets during a single PerformInteraction().

Q: What AddCommands() should my audio streaming application use?

A: Play, Pause or Stop, Resume, Skip, Skip back

Choosing Which Commands to Load

8

Page 9: APPLINK BEST PRACTICES - Ford - Track 5 - Best Practices.pdf · APPLINK BEST PRACTICES ELIZABETH HALASH PRODUCT DEVELOPMENT ENGINEER. Static Buttons Soft Buttons ... –How to best

• Current SYNC displays offer 2-4 lines of text, media clock timer, media track field

Utilizing the In-Vehicle Display

9

Media clock

Lines 1&2

Media Track

Page 10: APPLINK BEST PRACTICES - Ford - Track 5 - Best Practices.pdf · APPLINK BEST PRACTICES ELIZABETH HALASH PRODUCT DEVELOPMENT ENGINEER. Static Buttons Soft Buttons ... –How to best

• Update meta data

• Provide simple information to the user

• Update status information of the app, such as “Buffering”

• No scrolling/flashing text

• Determine which display is currently connected

if (currentDisplay == DisplayType.MFD4 || currentDisplay == DisplayType.MFD5

|| currentDisplay == DisplayType.MFD3)

{…setup}

else if( currentDisplay == DisplayType.CID)

{…setup}

else if (currentDisplay == DisplayType.8-INCH)

{…setup}

Utilizing the In-Vehicle Display

10

Page 11: APPLINK BEST PRACTICES - Ford - Track 5 - Best Practices.pdf · APPLINK BEST PRACTICES ELIZABETH HALASH PRODUCT DEVELOPMENT ENGINEER. Static Buttons Soft Buttons ... –How to best

• If your app loads many commands:

– Send a small number of the most important requests

immediately, including:

• button subscriptions

• custom prompts (SetGlobalProperties())

• 4 or 5 of the most important commands.

• Using a timer or background thread, send the remaining AddCommand()

requests in batches of 5 or every second or so.

• SYNC will disconnect on these conditions:

– More than 200 RPC requests in 2 seconds.

– Mobile application sends more than 5 requests within 5 seconds in HMILevel NONE.

Performance in-vehicle

11

Page 12: APPLINK BEST PRACTICES - Ford - Track 5 - Best Practices.pdf · APPLINK BEST PRACTICES ELIZABETH HALASH PRODUCT DEVELOPMENT ENGINEER. Static Buttons Soft Buttons ... –How to best

• Alerts(): short, informative messages that can be:

– Similar to push notifications on your phone

– Dismissed by:

• User closing

• Time out

• User input via softbuttons

• PerformInteractions(): dedicated one-time question and answer sessions that require a user’s response from a set of choices.

– Example:

• App initial prompt: “Please select a state.”

• User: “Michigan” (1 of 50 items in the choiceSet of states)

• If your application requires the user to choose from muttiple options (more than 2), you should use the PerformInteraction() API.

Alert vs PerformInteraction

12

Page 13: APPLINK BEST PRACTICES - Ford - Track 5 - Best Practices.pdf · APPLINK BEST PRACTICES ELIZABETH HALASH PRODUCT DEVELOPMENT ENGINEER. Static Buttons Soft Buttons ... –How to best

• Instant acknowledgment to any user input

• Providing updates during buffering or other delays

• How to provide feedback?

– Display vs. voice

• When designing your voice tree, be aware that you can trigger up to 3 voice prompts in a row using PerformInteraction. This is due to both driver distraction rules as well as ease-of-use. The following is an example:

– SYNC®: “Please select a country.”

– User: “USA”

– SYNC®: “USA, please select a state.”

– User: “Michigan”

– SYNC®: “Michigan, please select a city.”

– User: “Detroit.”

Providing Feedback to the User

13

Page 14: APPLINK BEST PRACTICES - Ford - Track 5 - Best Practices.pdf · APPLINK BEST PRACTICES ELIZABETH HALASH PRODUCT DEVELOPMENT ENGINEER. Static Buttons Soft Buttons ... –How to best

Finding Mobile Apps In Vehicle: setAppIcon()

14

Page 15: APPLINK BEST PRACTICES - Ford - Track 5 - Best Practices.pdf · APPLINK BEST PRACTICES ELIZABETH HALASH PRODUCT DEVELOPMENT ENGINEER. Static Buttons Soft Buttons ... –How to best

• What is SYNC’s language?

– The “RegisterAppInterface” RPC will report

SYNC’s language to you

Or

– proxy.getSyncLanguage()

• Changing app language to match SYNC (19 languages)

– ChangeRegistration()

– If this is not possible to change, SYNC will inform the user that the App’s language differs from SYNC and that Voice commands will not work as expected

• Ensure SYNC pronounces AppName correctly.

Different Languages

15

Page 16: APPLINK BEST PRACTICES - Ford - Track 5 - Best Practices.pdf · APPLINK BEST PRACTICES ELIZABETH HALASH PRODUCT DEVELOPMENT ENGINEER. Static Buttons Soft Buttons ... –How to best

• Keep it Simple, want it to “Just Work” in the car

• Consumption vs. Discovery

• Focus on using voice instead of the display.

– Driver distraction rules prevent traversing through submenus

Final considerations

16

Page 17: APPLINK BEST PRACTICES - Ford - Track 5 - Best Practices.pdf · APPLINK BEST PRACTICES ELIZABETH HALASH PRODUCT DEVELOPMENT ENGINEER. Static Buttons Soft Buttons ... –How to best

QUESTIONS?