What's New in APL 2023.3

(This is not the most recent version of the APL change log. Use the Other Versions option to see the documentation for the most recent version of the APL change log)

Alexa Presentation Language (APL) 2023.3 introduces new features and capabilities for APL.

Conditional imports

You now have more options when you import external packages into your APL document. You can use new import types and data-binding expressions to conditionally select the package or packages to load. You can also declare dependencies and require a particular package to load after a different package.

For example, you could load one package for hub devices and a different package for TV devices. This flexibility can improve performance and make it easier to manage complex packages.

For details, see APL Import.

Support for inserting and removing items

The new InsertItem and RemoveItem commands let you update the child items for a component at runtime. Use the onChildrenChanged event handler to watch for these changes and commands.

For details, see InsertItem Command, RemoveItem Command, and onChildrenChanged

Control over scrolling and paging animation speed

When you use an APL scrolling command to scroll a ScrollView or Sequence, you can control the speed of the scrolling animation with the new targetDuration property. Set to the duration in milliseconds, or set to zero to turn off the scrolling animation completely. The Scroll, ScrollToIndex and ScrollToComponent commands support this new option.

When you use an APL paging command to advance a Pager, you can control the speed of the paging animation with the new transitionDuration property. Set to the duration in milliseconds, or set to zero to turn off the paging animation completely. The SetPage and AutoPage commands support the new property.

Accessibility improvements

The component actions property now accepts new standard actions for scrolling. For details, see APL Base Component Properties

Gradient backgrounds for Frame components

Set the new background property on a Frame to either a gradient or color. This new property takes precedence if you provide values for both background and the legacy backgroundColor.

Support for data arrays in the Parallel and Sequential commands

The Parallel and Sequential commands now support a data property that accepts an array of values. When provided, the command iterates over this array and builds a new Sequential command for each item in the array. For details, see Parallel Command and Sequential Command.

Support for variable-sized viewports

The viewport object in the data-binding context has additional properties to report on the size of a viewport and whether that size can adjust:

  • autoHeight
  • autoWidth
  • minHeight
  • minWidth
  • maxHeight
  • maxWidth

For details about viewport sizing, see About viewport size. For details about how the size of the viewport and the size of the top-level component interact, see Understand viewport layout.

Improvements to the Lottie converter

The Lottie converter now supports radial gradients and images. The tool also now generates more compact Alexa Vector Graphic objects for use in your APL document. For details about using the Lottie converter, see Import a Lottie Animation

The Lottie Converter source code is open source and available if you want to integrate it into a custom APL authoring tool. The GitHub repository is available at https://github.com/alexa/apl-translator-lottie.

Other updates

  • The String functions available in data-binding expressions now include the charAt() function to return the character in a string at a specified index. For details, see String functions
  • The VectorGraphic component has a parameters property for explicitly passing parameters to the Alexa Vector Graphic (AVG) to display. You can continue to pass parameters as properties on the component as well. For details, see AVG object parameters.
  • When you request an extension in an APL document, you can set a new required flag. When true, the document won't load and render unless the extension is present. For details, see Request an extension in the APL document.
  • You can use data-binding expressions in the settings property for an extension. However, the data-binding expressions are limited to the properties available in the initial data-binding context. You can get information about the device, such as environment, but not data from a data source.

Updated APL cheat sheets

The APL cheat sheets provide a quick reference guide that provides information about the syntax and semantics of an APL document and its components, commands, and properties in a concise and digestible format. To download this reference for 2023.3, see APL Cheat Sheets.

APL versions and Amazon device support

For details about the APL versions available on Amazon devices, see APL versions and Amazon device support.

Work with APL versions

For details about how to check the APL version, see What's New in APL.

Was this page helpful?

Last updated: Jun 18, 2024