Like a tide ebbing and flowing, the history of computing has been marked by shifts between the management and control advantages of centralized, server-side processing and the personalization and flexibility options of client-side development. In the early days, a need to share the power and expense of mainframe computing beyond those who could physically access the machines with punch cards led to the development of terminals, all-in-one keyboards and displays that looked a bit like early PCs, but simply sent commands and received output from the mainframe and, later, armoire-sized minicomputers that did all the lifting.
But Moore’s Law marched on, and the rise of personal computing in the 1980s meant that it was now possible for many deskbound workers to harness the power of local processors. The PC gave rise to pioneering software such as Lotus 1-2-3, Photoshop, and Doom—literally a “killer app”. Over time, these PCs became linked over networks, which enabled collaboration as users could store files on servers.
But the PC ushered in an era of management challenges for IT departments juggling brands, configurations, repairs, file sharing, file loss resulting from failing hard drives, and intricate backup systems to prevent that, and the plague of viruses and malware that continues to this day. Apps needed to be installed and upgraded on local machines. Some organizations held on to terminal servers, using inexpensive PCs or terminal-like thin clients, to retain a level of manageability associated with server-side computing. However, the local networks of the day–and especially dial-up remote connections–struggled to keep up with graphical environments such as Windows, much less multimedia like the emerging phenomenon of digital video, and they could present users with an unfamiliar interface.
Since the dawn of the PC, then, the question has been how can we bring together the best of server and client development, but now in a way that satisfies the world’s largest software user bases on smartphones?
For many consumer apps beyond advanced games, the web came close to delivering this on the desktop. From its humble beginnings as a simple way to share and link documents, the web has evolved into a universal platform that spans PCs and mobiles. Developers consistently push the limits of front-end app sophistication and interface and virtually all application code and media assets stay in the cloud and are rendered by the browser. Indeed, over the years, several companies have tried releasing devices that might have little more than a browser. But even the most successful of these, Chrome OS, has expanded significantly beyond the Chrome browser to support mobile apps, Linux apps, and, with a bit of help, Windows apps in some cases.
The web came close to defining mobile apps, but that all changed when Apple reversed course and decided to let developers tap into an operating system derived from its desktop operating system; The developers of Android also had the PC in mind as they developed the operating system that Google would acquire. Apple’s App Store and its Google Play counterpart would fuel the app economy, unleashing a much larger second golden age of apps for which unear-constant connectivity more than made up for the limited screen area of phones.
Around the globe, consumers make use of apps that, like those on the PC, are installed locally and take advantage of native operating system functions. However, addressing hard lessons learned in the PC era, app store reviewers at Apple and Google also scrutinize new releases that developers make to apps, even if they are for features that are ephemeral or non-core. This can also introduce issues around users having different versions of the app that may exclude a new experience. The app update cycle does not lend itself to iterative development or optimization based on user data. For example, new experience to encourage in app conversion or on boarding may be added as part of a scheduled update cycle, but once deployed changes are typically infrequent given the demands on the mobile engineering team.
These are some of the reasons why mobile engineering teams seeking at major digital pure-play publishers like Airbnb and Lyft are adopting server-driven UI (SDUI) as a way to address these bottlenecks. While SDUI captures the advantages of web development, it offers many benefits beyond it. With SDUI, user interfaces are stored, updated, and sent from the server along with the associated content, to afford new client functionality and rendered using elements that are pre-approved for use in the app by Google and Apple..The approach works particularly well for experiences in an app that may be iterated; such as on-boarding or transitory such as seasonal promotions or sponsorships.
Judo has taken a platform approach to this “best of both worlds” scenario. We couple SDUI with a no-code development environment that is built on SwiftUI and makes no compromise in supporting native elements like custom fonts, language, accessibility, dark mode and other settings. Our platform ensures that experiences are prefetched to ensure zero latency.