Adaptive Cards: Platform-agnostic snippets of UI, authored in JSON
adaptivecards.io
adaptivecards.io
They wanted fields added and moved that could not be because all of the layout was determined by the card and MS Teams own rendering (namely they wanted a settings link on a card list). It took three calls with their “engineers” to make them realise. Microsoft will never commit to something long enough for them to learn it internally so why should anyone else bother?
Rant over.
There's a reason why JSX (basically XML in JS) is so popular and not some JSON definition of HTML. Even Windows apps have XAML so the UI doesn't have to be defined in C# objects.
I also can't stand JSX. It feels like inverted PHP to me (which I suppose makes sense since it's Facebook)... but I guess it's all just a matter of taste.
PHP is sticking code (php) in html
JSX is sticking xml (html-ish) in code (JavaScript)
JSON is great for programmatic manipulation, but horrible to read as a programmer.
For that use case, I do not believe JSON is any worse than XML for authoring, but really you want some sort of GUI for it. Programmers, especially those living in terminals, tend to hate such stuff, of course.
The site shows exactly one example (a very ho-hum weather widget) and that requires squinting to see it among all the other things in the video. It shows no other examples, nor the code to construct them. Nor does their documentation home [1]. The text is also illegible with ultra-thin 200 weight straight out of 2013.
Like, there's hundreds of examples of developer tool sites that get the basics right, and they're not even about UI.
(normally its bad form on HN to comment on the site vs the content, but in this case the site really is the content)
Not that that entirely excuses the web page from trying some better styles or better yet a "theme chooser" style approach to better illustrate how the base concepts are meant to be design-flexible by maybe actually showing design flexibility in action.
Fluent2 looks to correct many of those sins in a big way, so kudos to Microsoft for course correcting. I like it better than Material.
As far as these cards, they don’t even seem to meet the Fluent1 bar, again they’re more HTML1, and the examples aren’t even great at typographic layout. They built a system that looks theoretically capable of containing good design, but it doesn’t seem they had any designers on staff to actually verify that. It looks like it was built to some abstract spec an engineer and PM came up with on their own.
(Sorry for sounding like a hater but this world deserves better than to have these kinds of low effort designs everywhere, and my guess is with Microsoft’s reach these designs are going to be everywhere)
rfw is used by Google's Gemini LLM to generate UI.
rfw runs on the web/android/ios/macos/linux/windows, anywhere where Flutter runs.
[1] https://wd.gt/
Adaptive Cards - https://news.ycombinator.com/item?id=31449834 - May 2022 (35 comments)
edit: also - related ongoing thread I assume?
Microsoft's Fast - https://news.ycombinator.com/item?id=39294360
We considered Adaptive Cards, but ultimately decided against it in favor of our own schema especially since we already had platform specific UI libraries.
Why?
Adaptive cards proved inflexible for uses not part of its core capabilities.
Adaptive cards doesn't allow for interactive elements IE charts or graphs with tool tips.
Adaptive cards doesn't appear to be well maintained or supported for ongoing future needs.
There were some other reasons but they are fuzzy a couple of years after the fact. This was one of the most fun projects I've worked on, I had to write a mini parser which is always a fun exercise, and I think it had massive potential. Would have been a very cool project to ship to prod fully but it wasn't meant to be.
[0]https://twitter.com/XDevelopers/status/1585707921433923585
No macOS or Linux support...
Nothing in the Github feature roadmap for either one, either.