Uh oh! We couldn’t find any match.

Please try other search keywords.

Bixby Developer Center

Guides

2018 October - December

Note

Internal platform changes that are not visible to capsule developers will be communicated via internal status updates.

18V Capsule SDK Release Notes

Updated: Dec 3, 2018

Result Follow-ups

VIV-22222

After showing a result view, you can now allow Bixby to ask yes or no questions to take a specific action. While Result Follow-Ups are not specific to Hands-Free Mode, they do provide a good replacement for Conversation Drivers to those using Bixby in Hands-Free Mode.

Here is an example result view that confirms whether the user wants directions for a business result:

result-view {
match: Business (this)

message ("I found #{value(this.name)}")

render {
layout-match (this) {
mode (Details)
}
}

followup {
prompt {
dialog (Would you like directions?)
on-confirm {
intent {
goal: NavigateTo
value: Business$expr(this)
}
}
on-deny {
message (Okay.)
}
}
}
}

Read more about Guiding Conversations through Follow-Up Questions.

Updated JavaScript Environment

VIV-22959

The server-side JavaScript environment used by Bixby for JavaScript functions now supports JavaScript 1.8 (ECMAScript 2017).

Support for Dialog Template Localization

VIV-22056

To better support capsule localization, Bixby now supports a special syntax for handling agreement of gender and case within dialog templates.

Example:

template("Et voilà @{1g:le,la} %{1:#{concept(this)}} trouvé@{1g:,e}")

Read more about Dialog Template Localization in the Developer Guide.

18T Capsule SDK Release Notes

Updated: Nov 21, 2018

Introducing Hands-Free Mode

VIV-22040, VIV-22041

We're introducing the first feature of Hands-Free Mode, Hands-Free List Navigation. With Hands-Free List Navigation, you can now allow users to navigate through and select items from lists entirely by voice.

You can add Hands-Free List Navigation within the selection-of component of input views or the list-of component of result views. Here's a before and after of a simple input view from a capsule that allows users to book space resorts:

Before Hands-Free List Navigation

input-view {
match: SpaceResort (result)
message ("Which space resort would you like?")
render {
if (size(result) > 1) {
selection-of (result) {
has-details (true)
select-button-text("Book")
where-each (item) {
layout-macro (space-resort-summary) {
param (spaceResort) {
expression(item)
}
}
}
}
}
}
}

After Hands-Free List Navigation

input-view {
match: SpaceResort (result)
message ("Which space resort would you like?")
render {
if (size(result) > 1) {
selection-of (result) {
navigation-mode {
read-one {
list-summary ("I found #{size(result)} resorts.")
underflow-statement (This is the first resort.)
item-selection-question (Do you want to book this resort?)
overflow-statement (Those are all the resorts that meet your search.)
overflow-question (What would you like to do?)
}
}
has-details (true)
select-button-text ("Book")
where-each (item) {
layout-macro (space-resort-summary) {
param (spaceResort) {
expression (item)
}
}
}
}
}
}
}

Bixby provides several navigation modes that you can use depending on your capsule and device, ranging from reading no list items to reading many items.

You can even customize the navigation commands that users can say to interact with your capsule other than "next" or "yes", for example.

For more information on Hands-Free List Navigation, read through Hand-Free List Navigation in our Developer Guides.

'hands-free-page-size' Deprecated

With the introduction of Hands-Free Mode, we've deprecated the hands-free-page-size key, which was used with input-view and result-view. You should transition your capsules to instead use Hand-Free List Navigation.

Bixby Views

VIV-22225

Bixby now lets you construct Bixby Views to build your capsule’s user interface. Bixby Views uses the same key‐value modeling language that Bixby’s models are defined in. Use them to create interactive designs for Bixby in a simple, consistent manner. You can build various views in your capsule with less code without having to deal with HTML and CSS. The components are ultimately rendered as HTML and CSS on the device.

You can use Bixby Views to create various designs, including input form elements, views for confirmation, and views for showing results.

For example, here's a result-view that renders the results of a shoe search:

result-view {
match {
Shoe (shoe)
}

render {
if ("size(shoe) > 1") {
list-of (shoe) {
where-each (item) {
layout-macro (shoe-image-card) {
param (shoe) {
expression (item)
}
}
}
}
} else-if ("size(shoe) == 1") {
layout {
layout-macro (shoe-image-carousel) {
param (shoe) {
expression (shoe)
}
}
layout-macro (shoe-details-header) {
param (shoe) {
expression (shoe)
}
}
layout-macro (shoe-accessories) {
param (shoe) {
expression (shoe)
}
}
}
}
}
}

The resulting view looks like this:

Result View

For more information, learn about Creating Bixby Views. Refer also to the Design Guides for design principles when using Bixby Views and how your capsule should best interact with users.

Look for more updates to Hands-Free Mode in coming releases.

18R Capsule SDK Release Notes

Updated: October 2, 2018

Guest Access Permissions

VIV-21712

You can now determine guest access behavior within your capsule with a new capsule permission. When Bixby determines that the user is not the account owner, the new guest-access-allowed key can determine whether the guest user can use the capsule, and whether the account owner can change guest access permissions.

Confirmation View

VIV-14995

You can now conditionally determine if an action requires a confirmation or change the type of confirmation required.

To require a confirmation, actions must include a new confirm key, which can be conditionally set:

      confirm {
if (myInput > 65) {
by (MyConfirmation)
}
}

To determine what dialog or content the user sees, you now have a new confirmation-view key within the Bixby View:

confirmation-view {
match: common.Confirmation {
confirming: Action2 (action)
}
mode (NegativeEmphasis)
message ("Continue?")

render {
// `layout-match` or `layout-macro` or `nothing`
layout-match(action.input) {
mode (Detail)
}
}

confirm-options {
label ("Book")
on-confirm {
// allows user's to do post-confirmation validation
if (false) { // only `halt` and `replan` effects are supported
halt
}
}
}
abort-options {
label ("Keep looking")
on-abort {
intent {
goal: AvailableHotel
value {$expr(request.when)}
value {$expr(request.hotel.address.centroid)}
}
}
}
conversation-drivers {
...
}
}

Learn more about Confimation Views in the Developer Guide.