Bixby Developer Center

Guides

2019 October - December

Note

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

19U Capsule SDK Release Notes

Updated: November 6, 2019

Marketplace Constraints Deprecated

We've deprecated marketplace-constraints for better fine-grained control, with the new option to opt into an explicit list of device-models and store-countries for which you want your capsule to be available.

Learn more about updating your capsule.bxb file to provide store countries and device models.

Note

Your capsule will only appear in a specified country when the Marketplace is available in that country.

Examples

capsule {
...
device-models {
all {
except (SM-G973[A-Z]*) // Galaxy S10
except (SM-G975[A-Z]*) // Galaxy S10+
}
}
}
capsule {
...
store-countries {
all {
except (CN)
}
}
}

Deprecation Stages (learn more)

  • Stage 1: R19U
  • Stage 2: R19X
  • End of Life: R20I

19T Capsule SDK Release Notes

Updated: November 6, 2019

Enhanced Support for Testing Capsule Submissions

With this release, the Bixby platform will allow you to use any capsule submission as a revision override in the Bixby Studio Simulator or for on-device testing as long as it does not produce capsule compilation or validation errors at runtime.

This update applies both to private and public submissions and is exclusively for testing capsule submissions.

'MustRelate' Deprecated

We've deprecated the experimental related-values value MustRelate because it currently does not extend beyond the functionality of the default MayRelate.

This deprecation protects against duplicate result keys when splitting (caused when a function returns multiple, matching results).

Deprecation Stages (learn more)

  • Stage 1: R19T
  • Stage 2: R19W
  • End of Life: R20C

'compare' EL Function Deprecated

We're replacing the compare EL function with compareAll, which now properly handles null, empty, and multi-value nodes.

The compareall function returns a negative integer when node1 is less than node2, a positive integer when node1 is greater than node2, or zero if node1 and node2 are equal.

Deprecation Stages (learn more)

  • Stage 1: This deprecation is currently in Stage 1 and is safe to use until the time that we provide a formal deprecation schedule.

Deprecation of 'exists' and 'size' with Actions

We've deprecated the exists() and size() Expression Language node evaluation functions for action parameters as they are unsupported with actions.

Deprecation Stages (learn more)

  • Stage 1: R19T
  • Stage 2: R19W
  • End of Life: R20C

Warnings for Indexed Access on Actions

Because it is not supported, we now warn you if indexed access is performed on an action node, (such as someAction[0])).

Deprecation Stages (learn more)

  • Stage 1: R19T
  • Stage 2: R19W
  • End of Life: R20C

Bixby Views Support for Float on TV

Bixby Views now allows you to float certain components on the left-side of the screen. This is currently limited to TV devices.

19S Capsule SDK Release Notes

Updated: October 21, 2019

Note

The 19R release was combined with 19S.

Right-Hand Support for Named Dispatch

Bixby now supports right-hand named dispatch, so utterances that end like the following are now supported:

  • "... on %dispatch-name%"
  • "... with %dispatch-name&"
  • "... using %dispatch-name%"
  • "... from %dispatch-name%"
  • "... in %dispatch-name%"

'$vivContext.userId' Deprecated

In order to make Bixby more secure, we're deprecating $vivContext.userId, and introducing $vivContext.bixbyUserId. This new secure user ID can be used to persist user state or implement analytics. This ID is tied to the user's account and will be the same across all devices.

Note

To access $vivContext.bixbyUserId, you must request the bixby-user-id-access permission. See permissions for more details.

Example

capsule {
...
permissions {
bixby-user-id-access
}
}

For more information about bixbyUserId and $vivContext, read Passing User Context Information.

Deprecation Stages (learn more)

  • Stage 1: R19U
  • Stage 2: R19X
  • End of Life: R20I

New Video Player Component

We've added a new video player component to Bixby Views, which lets you stream an online video file.

section {
content {
video {
url ("https://example.com/videos/videofile.mp4")
poster ("https://example.com/videos/videoposter.jpg")
}
}
}

If a poster image is specified, it will be shown in place of the video until the video starts to play.

New Default Action for Dispatch-Only Utterances

We now allow you to define a default-action to be executed if a user says an utterance that calls your capsule with named dispatch, but has no further action. For example, "Use Meme Generator" or "Load Weather". The action you default to must be an action defined within your capsule and not imported.

If you do not define this key, the entire utterance is passed back to Bixby and interpreted as a whole.

New Legal Agreements File

You can now include a legal.bxb in your resources/base directory to set country-specific legal agreements for your capsule. For each country that your capsule will be made available in, you should specify the appropriate legal agreements. For more information, see the Provide Legal Agreements section in the Preparing for Release developer guide.

Example

legal {
country-documents {
store-country(US)
terms-and-conditions {
url(https://my-capsules-toc.us.com/)
}
privacy-policy {
url(https://my-capsules-privacy-policy.us.com/)
}
additional-terms-and-conditions {
url(https://my-capsules-addl-toc.us.come/)
}
cross-border-data-transfer {
url(https://my-capsules-cbdt.us.com/)
}
}
country-documents {
store-country(CA)
store-country(MX)
terms-and-conditions {
url(https://my-capsules-toc.com)
}
privacy-policy {
url(https://my-capsules-privacy-policy.com/)
}
}
country-documents {
store-country(CA)
additional-terms-and-conditions {
url(https://my-capsules-addl-toc.ca.com/)
}
}
}

19Q Capsule SDK Release Notes

Updated: October 1, 2019

'$vivContext.userId' Deprecated

See 19S Release Notes for updated information.

Bixby Views Updates

Numeric Keypad Support for Text Input

We've added support for numeric keypad input within form elements. If set to true, enables the numeric keypad on devices with screens to allow users to provide numbers.

Example

text-input {
pattern {
regex ("\\d{5}") {
on-error ("Please enter a 5-digit ZIP code")
numeric-keypad-enabled (true)
}
}
}
New Object Fit Component within Image Lists

We've added the object-fit option for image-list, which determines how an image fits within the image-list component.