Uh oh! We couldn’t find any match.

Please try other search keywords.

Bixby Developer Center

Guides

2019 July - September

Note

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

19O Capsule SDK Release Notes

Updated: August 19, 2019

Note

The 19N release of Bixby Capsule SDK has been combined with 19O.

New Required Dispatch Phrases

VIV-30309

We now require that your hints must use named dispatch. You can also add a preferred-hint to a hint, which can be used in situations where named dispatch is not required.

Example

hints {
uncategorized {
hint ("Ask ACME Smart Helper to find my keys") {
preferred-hint ("Find my keys")
}
hint ("Ask ACME Smart Helper to start the car") {
preferred-hint ("Start the car")
}
hint ("In ACME Smart Helper, turn on the lights") {
preferred-hint ("Turn on the lights)
}
}
}

New Intent Key for Attribution Links

VIV-30493

You can now add an intent key to the attribution-link. This allows you to add functionality such as triggering an additional result-view with an app-launch.

Example

...
attribution-link {
label ("a label")
url ("a url")
if (false) {
url ("another url")
} else {
intent {
goal: DoSomething
}
}
}

Runtime Flag for New Input View

VIV-29409

We've introduced a new runtime flag that changes how a single result is rendered within an input-view.

If you specify the use-input-views-for-selection-list-detail runtime flag, you can render the details of a single item in an input view by calling a layout, layout-match, or layout-macro.

Example

// With the `runtime-flag` enabled
input-view {
match-pattern: MyResult (this)
message (...)
render {
if (size(this) == 0) {
// render a form
} else-if (size(this) == 1) {
layout {
select-button-text (select me)
section {
...
}
}
} else {
selection-of (this) {
has-details (true)
where-each (result) {
...
}
}
}
}
}

If not specified, then an input-view calls out to a corresponding result-view to render the layout for a single result when selecting an item from the selection list.

New Runtime Flag to Disable Input Filtering

VIV-26857

We've added a new runtime flag, no-filtering-with-validation, that changes how Bixby applies validation conditions in order to reduce the number of ambiguous values.

By default, when a cardinality constraint violation occurs because an input has too many available candidates, Bixby attempts to pre-filter the available candidates using the existing input validations. This runtime flag disables that.

Example

capsule {
...
runtime-flags {
concepts-inherit-super-type-features
modern-prompt-rejection
support-halt-effect-in-computed-inputs
no-filtering-with-validation
}
}

Updates to Hints and Endpoints File Naming

VIV-29223

You now have the option to name your hints and endpoints files without a prefix.

Allowed:

  • my.hints.bxb
  • my.endpoints.bxb
  • hints.bxb
  • endpoints.bxb

Not Allowed:

  • shints.bxb
  • myendpoints.bxb
  • .hints.bxb
  • .endpoints.bxb

Status Bar within Transaction Support Deprecated

VIV-28798

We've deprecated the status-bar key within transaction-support.

Prompt Mode Deprecated

We've deprecated the mode key within prompt.

Example of Old Usage

...
error (MultipleItemsMatched) {
property (candidates) {
type (FoodName)
min (Required)
max (Many)
}
on-catch {
prompt (menuItemName) {
min (1)
max (1)
mode (Replace)
candidates (candidates)
}
}
}
...

19M Capsule SDK Release Notes

Updated: July 26, 2019

New Runtime Flag for Validation

VIV-26857

We've introduced the no-filtering-with-validation runtime flag, which changes how Bixby applies validation conditions to reduce the number of ambiguous values.

Example

capsule {
...
runtime-flags {
concepts-inherit-super-type-features
modern-prompt-rejection
support-halt-effect-in-computed-inputs
no-filtering-with-validation
}
}

New Runtime Flag for Default View Behavior

VIV-26857

We've introduced a new runtime flag, modern-default-view-behavior, which changes behavior when a result view or input view is not defined.

If modern-default-view-behavior is not set, Bixby will fall back to a default collection. This behavior is deprecated, and will be removed in a future release.

Example

capsule {
...
runtime-flags {
concepts-inherit-super-type-features
modern-default-view-behavior
support-halt-effect-in-computed-inputs
}
}

Meta Command Updates

VIV-29849

We've added a number of reserved utterances. Read Reserved Utterances for the full list.

Bixby Views Updates

Default Views

VIV-27251

If you include the new modern-default-view-behavior runtime flag, Bixby View now has default views if you do not specify a result-view or an input-view that matches the current moment. Bixby uses a default view that can provide a reasonable display of results or selectable options to the user. Your capsule should provide its own views for the best possible conversations with users.

Note

There is no default confirmation-view, although Bixby falls back to default confirmation dialog and displays if views are not defined for confirmation moments.

Manual Page Navigation

VIV-27929

We've introduced a new read-manual key within navigation-mode, which provides you with a manual way to handle page navigation. Results still have paging, but you have more control over how this is done. This key helps you with APIs that handle result paging themselves. For example, you might use this with a web API that provides a "cursor" to obtain more results, rather than returning all results.

Example

result-view {
match-pattern: MyResultList (list)
render {
list-of (list.results) {
navigation-mode {
read-manual {
page-selection-question (Do you like one of these?)
item-selection-question (Which one would you like?)
previous-page {
intent {
goal: MyResultList
value: MyPageNumber$expr(list.curPage - 1)
}
}
next-page {
intent {
goal: MyResultList
value: MyPageNumber$expr(list.curPage + 1)
}
}
// optional
with-previous-page-conversation-driver (!list.isFirstPage)
with-next-page-conversation-driver (!list.isLastPage)
}
}
}
}
New Progress Bar Component

VIV-29938

We've added a new progress-bar component to let users know the progress of an event or action.

Example

  section {
content {
progress-bar (70.2)
}
...
}
New Column Size Key for Image Cards

VIV-29592

We've added a new column-size key, which determines how many image cards are displayed within a larger list. You can specify 1, 2, or 3 cards per column.

Example

list-of (this) {
where-each (car) {
compound-card {
content {
image-card {
aspect-ratio (9:16)
column-size (2)
image-url ("#{raw(car.imageUrl)}")
title-area {
slot1 {
text {
value ("#{raw(car.name)}")
style (Title_M)
}
}
}
}
}
}
}
}
New Color Option in Text

VIV-28729

You now have the option to specify amber, blue, green, or red text color within text. If not specified, the default color is white.

19L Capsule SDK Release Notes

Updated: July 8, 2019

Layouts within Layout Macros

VIV-26036

You can now add a layout within layout-macro.

Note

You can't use a layout-macro with list-of and selection-of components if the macro can return a layout.

Updates to Geo Library Capsule

VIV-28238, VIV-28237

The NamedPoint concept within the viv.geo library capsule now supports rectangular bounding boxes.

Bixby Views Updates

Chin Deprecated within Compound Card

VIV-28804

We're making Bixby Views more consistent by ensuring each card has only one tappable area. As a result, we're deprecating support for the chin key for compound-card.

New Attribution Link within Sections

VIV-288828

We've added the ability to add an attribution-link within sections.

Example

// Within a larger view or layout file
section {
content {
... //other components
attribution-link {
label {
template ("More on BixbyDevelopers.com")
}
url ("https://bixbydevelopers.com")
}
}
}

Attribution Link

New Spacer within Section Content

VIV-28938

We've added the option to add spacer in content within a section.

// within a larger Views file
...
section {
content {
title-area { ... }
spacer // 24px
paragraph { ... }
// no spacer, 12px space between these two components
single-line { ... }
}
}
...
New Date Interval for Calendar Picker

VIV-29122

In addition to a single date, you can now use viv.time.DateInterval as the initial-value for a calendar picker.

New 'flattenAs' Expression Function

VIV-29403

We've introduced a new flattenAs formatting expression function, which flattens specified nodes into a single list, formats them in the specified format, then joins those formatted strings as a conjunctive list ("value1, value2, and value3").

Updates to Deprecation Lifecycle

VIV-28329

We've updated our SDK deprecation lifecycle, which includes three stages. Learn about these deprecations in our Developer Guide.

'confirmed-by' Deprecated

VIV-28730

We've deprecated the confirmed-by key. You should instead use the confirm key.

Example

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

Old File Extensions Deprecated

VIV-28970, VIV-28972

Since we have deprecated support for the associated legacy file formats, we're deprecating the associated file extensions:

  • *.sb: previously used for layouts.
  • *.bml: previously used for layouts.
  • *.6t: replaced with *.bxb.