적응형 카드는 개발자가 공통적이고 일관된 방식으로 UI 콘텐츠를 교환할 수 있도록 하는 개방형 카드 교환 형식입니다.
작동 방식
카드 작성자는 해당 콘텐츠를 간단한 JSON 개체로 설명합니다. 그런 다음, 호스트 애플리케이션 내에서 기본적으로 해당 콘텐츠를 렌더링하여 호스트의 모양과 느낌에 자동으로 맞게 조정할 수 있습니다.
예를 들어 Contoso Bot은 Bot Framework를 통해 적응형 카드를 작성할 수 있으며 Skype에 배달되면 Skype 카드처럼 보이고 느껴집니다. 동일한 페이로드가 Microsoft Teams로 전송되면 Microsoft Teams처럼 보이고 느껴집니다. 더 많은 호스트 앱이 적응형 카드를 지원하기 시작하면 동일한 페이로드가 이러한 애플리케이션 내에서 자동으로 작동하게 되며, 여전히 앱과 완전히 일체화된 느낌을 줍니다.
모든 것이 익숙하기 때문에 사용자가 승리합니다. 호스트 앱은 사용자 환경을 제어하기 때문에 승리합니다. 그리고 카드 작성자는 추가 작업 없이 콘텐츠의 도달 범위가 넓어지므로 승리합니다.
목표
적응형 카드의 목표는 다음과 같습니다.
- 이식 가능 - 모든 앱, 디바이스 및 UI 프레임워크에
- 열기 - 라이브러리 및 스키마가 오픈 소스이며 공유됨
- 저렴한 비용 - 정의하기 쉽고 사용하기 쉽습니다.
- 익스프레시브 - 개발자가 생성하고자 하는 콘텐츠의 롱테일을 대상으로 합니다.
- 순전히 선언적 - 코드가 필요하거나 허용되지 않습니다.
- 자동으로 스타일 지정 - 호스트 애플리케이션 UX 및 브랜드 지침에 맞추어
카드 작성자용
적응형 카드는 카드 작성자에게 적합합니다.
- 하나의 스키마 - 단일 형식을 사용하여 카드를 만들고 사용할 수 있는 위치 수를 최대화하는 비용을 최소화합니다.
- 더 풍부한 표현 - 더 다양한 색상 팔레트를 사용하여 콘텐츠가 당신이 말하고자 하는 바를 더 잘 표현할 수 있습니다.
- 광범위한 범위 - 새 스키마를 학습하지 않고도 광범위한 애플리케이션 집합에서 콘텐츠가 작동합니다.
- 입력 컨트롤 - 카드를 보는 사용자로부터 정보를 수집하기 위한 입력 컨트롤을 카드에 포함할 수 있습니다.
- 더 나은 도구 - 오픈 카드 에코시스템은 모든 사람이 공유하는 더 나은 도구를 의미합니다.
경험 소유자용
타사 콘텐츠의 에코시스템을 활용하려는 앱 개발자인 경우 다음과 같은 이유로 적응형 카드를 좋아할 것입니다.
- 일관된 사용자 환경 - 렌더링된 카드의 스타일을 소유하고 있으므로 사용자에게 일관된 환경을 보장합니다.
- 네이티브 성능 - UI 프레임워크를 직접 대상으로 하여 네이티브 성능을 얻습니다.
- 안전 - 콘텐츠는 안전한 페이로드로 전달되므로 원시 태그 및 스크립팅에 대한 UI 프레임워크를 열 필요가 없습니다.
- 쉽게 구현 가능 - 지원하는 모든 플랫폼에 쉽게 통합할 수 있는 기성 라이브러리를 제공합니다.
- 무료 설명서 - 독점 스키마를 발명, 구현 및 문서화할 필요가 없으므로 시간을 절약할 수 있습니다.
- 공유 도구 - 사용자 지정 도구를 만들 필요가 없으므로 시간을 절약할 수 있습니다.
핵심 디자인 원칙
적응형 카드는 디자인을 궤도에 유지하는 데 유용한 일련의 안내 원칙 에 의해 구동됩니다.
픽셀 완성 대신 의미 체계
순수 픽셀의 완벽한 레이아웃이 아닌 의미 체계 값과 개념을 위해 최대한 많은 노력을 했습니다. 의미 체계 식의 예는 색, 크기 및 FactSet 및 ImageSet과 같은 요소에 표시됩니다. 이 모든 것을 통해 호스트 애플리케이션은 실제 모양과 느낌에 대해 더 나은 결정을 내릴 수 있습니다.
카드 작성자는 콘텐츠를 소유하고 호스트 앱은 모양과 느낌을 소유합니다.
카드 작성자는 말하고 싶은 것을 소유하지만, 이를 표시하는 애플리케이션은 해당 애플리케이션의 컨텍스트에서 카드의 모양과 느낌을 소유합니다.
단순하지만 표현력 있게 유지
적응형 카드가 표현적이고 범용이 되기를 원하지만 UI 프레임워크를 빌드하고 싶지는 않습니다. 목표는 Markdown이 문서에 충분히 표현되는 것과 같은 방식으로 "충분히 표현"되는 중간 계층을 만드는 것입니다.
Markdown은 단순하고 표현력 있게 유지하는 데 집중하여 문서 콘텐츠에 대한 쉽고 일관된 설명을 만들었습니다. 마찬가지로 적응형 카드는 카드 콘텐츠를 설명하는 간단하고 표현적인 수단을 만들 수 있다고 생각합니다.
의심스러울 때는 빼세요.
실수와 함께 사는 것보다 나중에 추가하는 것이 더 쉽습니다. 만약 우리가 무언가를 추가해야 하는지 여부에 대해 논쟁하게 된다면, 우리는 그것을 빼기로 결정했습니다. 원하지 않는 레거시를 지원하기보다 속성을 추가하는 것이 항상 더 쉽습니다.
빌드 2019 세션
Microsoft Build 컨퍼런스의 다음 세션에서는 다양한 사용 사례에서 적응형 카드를 소개합니다.
[! 비디오 [https://www.youtube.com/embed/wT1yFr_j6IM]