3 ms·
Server-driven UI is a thing that's been gaining traction in recent years. To my knowledge, at least a few FAANG companies have adopted this for the reasons men
by gavinray 3y ago
Server-driven UI is a thing that's been gaining traction in recent years.
To my knowledge, at least a few FAANG companies have adopted this for the reasons mentioned in the article (AirBnB, Lyft, Expedia)
https://github.com/csmets/Server-Driven-UI https://github.com/csmets/Server-Driven-UI
There are a few frameworks that cater to this -- most of them are variations on an API that returns JSON describing view components and state/actions.
For instance, DivKit:
- https://github.com/divkit/divkit https://github.com/divkit/divkit
- https://divkit.tech/playground https://divkit.tech/playground
It's a decent idea IMO, though I have no personal experience with it. I guess time will tell whether it catches on at-large though.
- madeofpalk 3y agoThis is hardly new in TV-land. The second generation Apple TV's app runtime was all server-driven XML. TVMLKit is the "modern" replacement for this style of Apple TV app (mostly to make it easier to port I guess) https://developer.apple.com/documentation/tvmlkit https://developer.apple.com/documentation/tvmlkit Archived example https://web.archive.org/web/20170813035144/http://trailers.apple.com/appletv/index.xml https://web.archive.org/web/20170813035144/http://trailers.a... TV's "native" platforms are also similar, or just straight up HTML/CSS/JS.
- russellbeattie 3y agoI decompiled Apple TV's Android app when it first launched, and was surprised by how well made it was. Rather than rely on a WebView to parse markup and display a GUI as most other major media apps do, it integrated NodeJS for scripting, a native XML parsing library, and then drew the entire UI directly to the display as if it was a full screen video game. This allowed it to have smooth, consistent animations on hardware which choked on Chromium's bloated resource needs. It also let Apple have a cross platform UX without needing to rely on any of Android's native UI controls. I was pretty astounded by its elegance, simplicity and power. Apple was able to build off the work they had already done for Apple TV and the end result was a compact and relatively straightforward application. I bet it's even easier to maintain than apps which use standard Android dev tools and libraries.