TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

What Is Server-Driven UI?

55 pointsby krzyzanowskimover 3 years ago

21 comments

marstallover 3 years ago
Son, let me tell you bout a little thing called the web
评论 #28383515 未加载
评论 #28384575 未加载
评论 #28383072 未加载
spyspyover 3 years ago
This is how the iOS NYT Crossword app works. We called it the Server View Model (SVM). The server and UI have &quot;card&quot; models that are described as protobufs and assembled and sent by the server when the user opens the app. The UI has tons of personalized data, so a purely native UI would require several fetches anyway. It allowed us to add features like &quot;From The Archive&quot; in a few days without a formal app store release.<p>Admittedly it was a weird DSL and I can&#x27;t say for sure I&#x27;d do it again.
评论 #28383488 未加载
hitekkerover 3 years ago
I found this comment to be a thoughtful critique of Server-Driven UI: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=27708631" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=27708631</a>
评论 #28394475 未加载
recursivedoubtsover 3 years ago
Hyperview is an open source tool by InstaWork that leverages the hypermedia model for mobile development:<p><a href="https:&#x2F;&#x2F;hyperview.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;hyperview.org&#x2F;</a><p>They created it after seeing how effective the intercoolerjs&#x2F;htmx approach was for their web application.<p>Hypermedia is a neat approach to building applications. We should look into it more.
评论 #28384382 未加载
评论 #28384604 未加载
joshribakoffover 3 years ago
My team is trying (something like) this pattern out. Initially I had the sentiment that many commentators here had, “this feels like re-inventing HTML”.<p>After discussing more the benefits, I am in favor of us using the pattern because it means we’re moving a lot of complex logic about deciding which “tiles” to show off of the front end client(s) where it can be hard to maintain. We’re centralizing it one place in the backend and surfacing higher level decisions to hide or show the tile, rather than surfacing lower level data the clients need to crunch and reduce into a decision about a tiles visibility . Since the server is a single place to determine which tile to show, we can do things like quickly disable a feature for whatever reason.<p>We’re cognizant it <i>could</i> become over complicated if we try to do something like reinventing flex box, but I think that using the pattern tactfully is sensible. We’re specifically only doing SDUI to decide which “tiles” to show, not to try to power things like the layout which we are hard coding on the client. I think of it less as SDUI (buzzword) and instead think of it as a helpful way for my teammates to understand “thin client fat API”
评论 #28394157 未加载
phpnodeover 3 years ago
Now we just need a four letter initialism in order to describe this mechanism. Maybe JUDL? (JSON-based User-Interface Description Language), or if we were to switch the representation to something more SGML-like, maybe UIML (pronounced wee-mull)
评论 #28384361 未加载
评论 #28383472 未加载
tootieover 3 years ago
This is a CMS isn&#x27;t it? Haven&#x27;t we been doing this forever? CMS for apps has been a bit behind where it is for the web, but it still exists.
评论 #28383463 未加载
chacham15over 3 years ago
Basically React-Native with the html coming from a server. I dont buy the argument that this will fly with Apple+Google. They like to be in control of what your app experience is and this by definition is contrary to that.
评论 #28384407 未加载
评论 #28384410 未加载
develatioover 3 years ago
This is just plain HTML presented as some JSON-like format. How many times are web developers going to reinvent the wheel instead of using what&#x27;s already there?
评论 #28383676 未加载
评论 #28383867 未加载
thrillover 3 years ago
So, a markup language and style sheet?
traversedaover 3 years ago
What? Why isn&#x27;t it an embedded web app at that point?
评论 #28383453 未加载
评论 #28383044 未加载
kitanataover 3 years ago
everything old is new again
评论 #28383260 未加载
frazbinover 3 years ago
This is probably best understood as an advanced adaptation to the particular difficulties of deploying into a walled garden. That&#x27;s certainly how the author frames it. The similarity with web comes because of shared restrictions (untrusted client application, deep server side data, document based layout). The differences come from the proprietaryness of app ecosystems-- the taint of unfreedom propagating from the platform into an app-specific DSL.
bob1029over 3 years ago
We&#x27;ve been doing something like this since 2014 for an enterprise iOS application.<p>I can&#x27;t imagine us being where we are at today if we had to make a trip through shitty iOS toolchain every time we tweak a UI element. We have very complex &amp; custom views per customer.<p>If I had to do it all again from zero today I&#x27;d use pure HTML solution. The advances in open web capabilities give us what we need now.
handrousover 3 years ago
&gt; Server-driven UI is new<p>Uh, no, not at all.
m33k44over 3 years ago
Whenever this idea is mentioned, I cannot resist posting this project: <a href="https:&#x2F;&#x2F;github.com&#x2F;jasonelle&#x2F;jasonelle" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jasonelle&#x2F;jasonelle</a>
Gysover 3 years ago
Reminds me of <a href="https:&#x2F;&#x2F;jasonette.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;jasonette.com&#x2F;</a> which also uses serverside generated json to show content in a mobile app.
syysilmaover 3 years ago
can&#x27;t imagine this is good for people on slow &#x2F; no connection - the example given is for something that already obviously requires internet, but it&#x27;s no panacea for slow updates
评论 #28384357 未加载
namanaggarwalover 3 years ago
Server driven UI - Fancy name for web browser ?
评论 #28386720 未加载
filipoover 3 years ago
Turbolinks&#x2F;Strada allows this as well…
winridover 3 years ago
TLDR; Basically a meta data driven engine on the client and a server that sends configuration to render the UI.<p>Kind of like... a browser. :)