アダプティブ カードの概要
アダプティブ カードは、開発者が UI コンテンツを共通で一貫した方法で交換できるようにする、オープンなカード交換フォーマットです。
そのしくみ
カードの作成者は、単純な JSON オブジェクトとしてそのコンテンツを記述します。 次に、ホストの見た目や操作感に自動的に対応して、そのコンテンツはホスト アプリケーション内でネイティブにレンダリングされます。
たとえば、Contoso ボットは、Bot Framework からアダプティブ カードを作成でき、Skype に配信されると Skype カードのような見た目と操作感になります。 その同じペイロードが Microsoft Teams に送信されると、Microsoft Teams のような外観になります。 アダプティブ カードのサポートを開始しているホスト アプリが増えるなか、その同じペイロードはこれらのアプリケーションの中で自動的に区別されるものの、そのアプリに対しては完全にネイティブのようになります。
ユーザーは使い慣れた操作感に満足でき、 ホスト アプリではユーザー エクスペリエンスを制御できます。 また、カードの作成者も、追加の作業を行わなくても、より多くの人にコンテンツを届けることができます。
目標
アダプティブ カードの目標は次のとおりです。
- ポータブル - どのようなアプリ、デバイス、および UI フレームワークでも可能
- オープン - ライブラリとスキーマはオープン ソースで、共有されます
- 低コスト - 定義と使用が簡単
- 表現力豊か - 開発者が好むロングテールのコンテンツを対象としています
- 純粋な宣言型 - コードは必要ありません
- 自動スタイル設定 - ホスト アプリケーションの UX およびブランド ガイドラインに対応
カードの作成者の場合
アダプティブ カードは、カードの作成者にとって最適です。
- 1 つのスキーマ - 単一のフォーマットにより、カードの作成にかかるコストを最小限に抑え、使用できる場所の数を最大化します。
- より豊かな表現力 - ペイント用の豊富なパレットが揃っているため、コンテンツを自分の表現したいものに近づけることができます。
- 広範なリーチ - コンテンツはより広範なアプリケーションに届きます。新しいスキーマを学習する必要がありません。
- 入力コントロール - カードを表示しているるユーザーからの情報を収集するための入力コントロールをカードに含めることができます。
- ツールの強化 - オープン カード エコシステムは、だれとでも共有されるより優れたツールを意味します。
エクスペリエンスの所有者の場合
アダプティブ カードは、サードパーティ コンテンツのエコシステムを活用したいアプリ開発者に最適です。その理由は次のとおりです。
- 一貫したユーザー エクスペリエンス - レンダリングされるカードのスタイルを所有しているため、ユーザーに一貫したエクスペリエンスを保証できます。
- ネイティブ パフォーマンス - UI フレームワークが直接対象とされるため、ネイティブ パフォーマンスが得られます。
- 安全 - コンテンツは安全なペイロードで配信されるため、UI フレームワークを生のマークアップやスクリプトに開く必要がありません。
- 実装が簡単 - シェルㇷ ライブラリの使用をやめて、サポートされた任意のプラットフォームで簡単に統合できます。
- ドキュメント不要 - 独自のスキーマを考案、実装、文書化する必要がないため、時間を節約できます。
- 共有ツール - カスタム ツールを作成する必要がないため、時間を節約できます。
核となる設計原則
アダプティブ カードは、設計を順調に進めるために役立つ一連の指針によって動作します。
ピクセル パーフェクトではなくセマンティック
純粋にピクセル パーフェクトなレイアウトではなく、できる限りセマンティックな値と概念に向けて取り組んできました。 セマンティックな表現の例が、色、サイズ、そして FactSet や ImageSet などの要素に表れます。 これらすべてにより、ホスト アプリケーションは、実際の外観についてよりよい決定を行えます。
カードの作成者はコンテンツを所有し、ホスト アプリケーションは外観を所有
カードの作成者は伝えたいものを所有しますが、それを表示するアプリケーションはそのアプリケーションのコンテキストでカードの外観を所有します。
シンプルなのに表現力豊か
アダプティブ カードを表現力豊かで汎用的なものにしたいが、UI フレームワークを作成したくはありません。 目標は、Markdown がドキュメントに十分に表現力豊かであるのと同様に "十分に表現力豊か" な中間レイヤーを作成することです。
シンプルかつ表現力豊かであることを重視して、Markdown は、ドキュメント コンテンツの簡単で一貫した説明を作成しました。 同様に私たちは、アダプティブ カードでは、カード コンテンツを説明する表現力に富んだ簡単な方法を作成できると考えています。
迷ったら放っておく
後で追加するほうが、間違ったまま進むより簡単です。 何かを追加したほうがよいか迷った場合、追加しないことを選択しました。プロパティを追加する方が、サポートしなくてもよかったレガシでやっていくのより常に簡単です。
Build 2019 セッション
Microsoft Build カンファレンスの次のセッションは、アダプティブ カードのさまざまな使用事例を紹介します。
[!VIDEO [https://www.youtube.com/embed/wT1yFr_j6IM]