📣 Community Call - June 13, 2019

Profile image of Matt Hidinger

Matt Hidinger

· 4 min read

Welcome to our Adaptive Cards community call series for 2019, the 2nd Thursday of each month. We are excited to provide you with a monthly opportunity to learn about Adaptive Cards in general, how they could be a great tool in your applications and contribute to the evolution of the format and SDKs. Each month, we’ll discuss new features we are bringing to the platform, our roadmap, and listen to your feedback and suggestions.

Agenda for this month’s call, hosted by Matt Hidinger, included:

v1.2 shipped!

The team polished up and released the v1.2 SDKs for Android, iOS, UWP, .NET, and JavaScript.

The Expense Report sample showcases a bunch of the new 1.2 features:

The full list of v1.2 features can be found on GitHub. We're working closely with our partners to roll-out v1.2 as soon as possible. To see which version the major platforms are currently on see the Host App Docs.

Adaptive Card

v1.3 planning is underway

We also walked through some high-level features that are under consideration for v1.3. This list is not final and will not include everything listed. Now is the best time to suggest things we haven't considered!
1.3 feature list

planning screenshot

Adaptive Cards templating library for JavaScript available

Lastly we walked through the adaptivecards-templating package (preview) which is available on NPM. This library adds templating support to Adaptive Cards, allowing the separation of content from the card layout. This work is currently in active development, so your feedback is most welcome. For plenty of deep dives on templating, take a look at previous Community Calls, and please reach out with any issues or feature suggestions.

You can also experiment with templating adaptive cards using the “next designer” at http://vnext.adaptivecards.io/designer.

To use the adaptivecards-templating library, simply take an adaptive card you created in the vnext designer, and add templating expressions for the values you want to replace with real data, then pass that data along to the library as seen below. It will create a fully-populated adaptive card – ready to render!

// Define a template payload
var templatePayload = {
    "type": "AdaptiveCard",
    "version": "1.0",
    "body": [
        {
            "type": "TextBlock",
            "text": "Hello {name}!"
        }
    ]
};

// Create a Template instamce from the template payload
var template = new ACData.Template(templatePayload);

// Create a data context, and set its $root property to the
// data object to bind the template to
var context = new ACData.EvaluationContext();
context.$root = {
    "name": "Groot"
};

// "Expand" the template - this generates the final Adaptive Card,
// ready to render
var card = template.expand(context);

// Render the card
var adaptiveCard = new AdaptiveCards.AdaptiveCard();
adaptiveCard.parse(card);

document.getElementById('exampleDiv').appendChild(adaptiveCard.render());

Watch the call here.

Next month’s call will be held on Thursday, July 20, 2019 at 9:00am PST. We look forward to talking to you then! Download a recurring calendar invite here at https://aka.ms/adaptivecardscommunitycall.

Profile image of Matt Hidinger

Principal Program Manager at Microsoft, running the Adaptive Cards project. Loving the new cross-platform, open-source, MSFT ride