APL 1.9の新機能

APL 1.9の新機能

Alexa Presentation Language(APL)1.9では、APLに新機能が追加されました。

オーサリングツールの更新

APLオーサリングツールが更新され、次の改善が加えられました。

  • Lottieコンバーターで、サポートされるLottie形式の機能が追加されました。

    • パスのトリミング(制限付きサポート)
    • プリコンポーズ
    • 破線
    • マット(制限付きサポート)

    詳細については、Lottieアニメーションのインポートを参照してください。

  • オーサリングツールにコードビューGUIビューのタブが追加され、さまざまなモードのドキュメントを編集しやすくなりました。
  • オーサリングツールにコンポーネントを追加コンポーネントを削除のボタンが追加され、GUIビューでの作業中に項目がどのようにドキュメントに追加されるかを確認しやすくなりました。
  • 開発者コンソールのマルチモーダル応答ボタンで、新規ウィンドウやタブではなく、同じウィンドウのペイン内にオーサリングツールを開くことができるようになりました。
  • グラフィカルユーザーインターフェースでAlexa Vector Graphics(AVG)を編集できます。JSONコードを編集する方法のほかに、インターフェースを使って色やパスデータを変更できるようになりました。詳細については、AVGをオーサリングツールで編集するを参照してください。

Scalable Vector Graphics(SVG)(ベータ版)

APLオーサリングツールを使って、Scalable Vector Graphics(SVG)ファイルをAVGオブジェクトに変換し、Alexa Presentation Language(APL)ドキュメントで使用できるようになりました。

SVG形式は、ベクターグラフィックスを表すためのXMLベースのマークアップ言語です。AVGは、SVGのパラメーター化されたサブセットです。AVGで定義されたグラフィックは、VectorGraphicコンポーネントを使ってドキュメントに表示できます。

詳細については、Scalable Vector Graphic(SVG)のインポートを参照してください。

Viewportプロファイルのサポート

レスポンシブ対応コンポーネントとレスポンシブ対応テンプレートで、モバイルのViewportプロファイルがサポートされるようになりました。

  • @mobileSmall
  • @mobileMedium
  • @mobileLarge

alexa-viewport-profilesパッケージのViewportプロファイルの詳細については、Alexa Viewportプロファイルを参照してください。

タブレットを回転させて表示を横長と縦長に変更できるようにするには、サイズ変更をサポートするようにスキルを設定し、デバイスの設定が変わるときにReinflateコマンドを実行します。詳細については、以下を参照してください。

AlexaパッケージをAPLドキュメントに読み込む

最新のコンポーネント、テンプレート、スタイル、リソースを使用するには、APLドキュメントを更新してパッケージの最新バージョンを読み込みます。

パッケージ バージョン

alexa-layouts

1.5.0

alexa-styles

1.4.0

alexa-viewport-profiles

1.4.0

コンポーネントとテンプレートの概要については、レスポンシブ対応コンポーネントとテンプレートを参照してください。

更新情報

ジェスチャー

APLでTapジェスチャーがサポートされるようになりました。このジェスチャーは、コンポーネント上の意図的なタップを検出します。その方法はonPressよりも制限的です。onTapハンドラーを使って、システムがタップを検出したときに実行するコマンドを定義します。

コマンド

  • AnimateItemコマンドを使ってバインドされたプロパティをアニメーション化できるようになりました。

データバインディングコンテキスト

データバインディングコンテキストのenvironmentプロパティに、以下の新しいプロパティが追加されました。

  • disallowEditTextEditTextコンポーネントが無効の場合にTrueです。
  • disallowDialogSpeakItemコマンドとSpeakListコマンドが無効の場合にTrueです。

ドキュメントのプロパティ

APLのバージョンを指定する

APLドキュメントで、version"1.9"に設定します。

APLの最新バージョンをサポートしていない古いデバイスでスキルが呼び出される場合があります。特定のバージョンのAPLで導入された機能を使用する場合は、それ以前のバージョンのAPLを実行しているデバイス向けに代替機能を提供してください。データバインディングコンテキストenvironment.aplVersionプロパティを使用すると、デバイスのAPLのバージョンを取得できます。このプロパティでは、APL 1.0についてはnullが、APL 1.1以降では実際のバージョン番号が返されます。このプロパティをwhenステートメントで使用すると、バージョンに基づく条件付きブロックを作成できます。

たとえば、次のようにすると、APL 1.1以降を使用しているデバイスではVectorGraphicを、APL 1.0を使用しているデバイスでは画像(Image)をレンダリングできます。

[
  {
    "type": "Image",
    "when": "${environment.aplVersion == null}",
    "width": 100,
    "height": 100,
    "source": "https://example.com/alternate/image/for/older/versions.jpg"
  },
  {
    "type": "VectorGraphic",
    "when": "${environment.aplVersion != null}",
    "source": "lightbulb",
    "width": 100,
    "height": 100,
    "scale": "best-fit"
  }
]

APLのバージョンは、スキルに送信されるリクエストにも含まれています。

context.System.device.supportedInterfaces.['Alexa.Presentation.APL'].runtime.maxVersion

次の例は、APL 1.9に対応したデバイスからのリクエストを示しています。短くするために、sessionrequestviewportの各プロパティは省略しています。

{
  "version": "1.0",
  "session": {},
  "context": {
    "System": {
      "application": {
        "applicationId": "amzn1.ask.skill.1"
      },
      "user": {
        "userId": "amzn1.ask.account.1"
      },
      "device": {
        "deviceId": "amzn1.ask.device.1",
        "supportedInterfaces": {
          "Alexa.Presentation.APL": {
            "runtime": {
              "maxVersion": "1.9"
            }
          }
        }
      },
      "apiEndpoint": "https://api.amazonalexa.com",
      "apiAccessToken": "eyJ..."
    },
    "Viewport": {}
  },
  "request": {}
}