Photo by Vadim Sherbakov from StockSnap

The next challenge in cross-platform development: Ubiquitous computing

Tjarco Kerssens
4 min readMay 31, 2020

--

The screens are everywhere. In your pocket and on your desk, but also on the streets, in your car, and maybe even on your fridge. Even more, trends seem to indicate it will not stop there. The number of devices per capita seems to grow from 1.84 in 2010 to 6.58 in 2020. With this growth, new challenges to efficiently publish your content to a wide range of interaction opportunities will arise.

When we talk about cross-platform, we usually mean either multiple mobile operating systems (often we even just mean Android + iOS) or multiple desktop operating systems. In fact, anything that runs on multiple platforms is already cross-platform! The benefits of successfully applied cross-platform development are numerous, which I will not list in-depth for this article. It is sufficient to say that it saves time (and therefore money) during development, but also thereafter with maintenance. The key thing here is successfully applied cross-platform development since it often seems challenging.

So imagine you have an e-commerce platform and you want to maximize the number of interaction opportunities with your target group, in order to make a purchase as convenient (and therefore more likely) as possible. Now imagine all the possible screens a user might interact with, in the near future. Of course, you have smartphones and desktops, which are with Android, iOS, Windows, macOS, and Linux already five platforms! Now an employee shares a link in the Slack with a news message about people buying products when they are in front of their fridge, yet another device. Later on, you sit in your Tesla and you remember you forgot to buy diapers. How convenient would it be to just order them from the screen in your car?

You can see where I am going with this. Building and maintaining applications for all these different platforms is going to be a tedious task, let alone maintaining them in the long run. And why should that be? They all do sort-off the same thing. It’s hard to explain to nontechnical people why we can’t just write it once and run it everywhere. But there is hope! The way I see it, there are three exciting developments going on that might tackle this problem, which I will illustrate below.

Ubiquitous web

The first one is about building on an existing technology that everyone is already using daily and for which there are countless developers available: simply the world wide web! With all the exciting developments like Progressive Web Apps, new capabilities like push notifications, offline storage, and camera controls, websites are becoming more and more capable applications rather than just information pages. And for your web app to run on any device, the device would only need a browser. The web keeps evolving to become more and more the universal solution for cross-platform needs.

Universal compiling

What if we have a framework where you can develop once, and then compile to all kinds of different platforms? Native efficiency with single code-base productivity, seems like the dream right? One interesting framework I would like to discuss in this context is Flutter. At the latest Flutter interact, the team made their intentions about many-platform development clear. They already have iOS and Android production-ready and are also working on web and desktop support. Even more, in the talks, they showed videos of Flutter apps running on for example screens in cars. Exciting developments to keep an eye on!

Virtualization

This last possible innovation seems a bit more far-stretched since currently there are not any front-end mobile projects that aim to enable cross-platform via virtualization that I know of. However, the developments in virtualization are booming for more desktop and back-end related tasks. With Docker, efficient, and minimal cross-platform approaches became available for desktop and servers. Making sure that the code behaves the same on any underlying platform is important, hence possibilities to exploit the learnings and developed technology for Docker for more platforms may arise.

What’s next?

In this article, I have argued the case for efficient many-platform development. I have also listed some interesting possible solutions to keep an eye on, which I encourage you to do so. The developments go very fast and it seems like almost every day there is something new. I think we are at the dawn of true cross-platform development: Writing once, running everywhere.

--

--