Photo by rawpixel.com on Unsplash

The future of cross-platform?

Has the time come for truly unversal apps?

Is HTML5 going to be the holy grail for truly cross-platform apps?

The promise of a universal way or language for making apps or programs has always been around. Many have tried and many have failed. For every developer it would be a dream that you write code once and it can run on every device. With the current climate, some may wonder, has the time finally come? In this piece I will talk about some future developments and go over some techniques to make an app that works on almost all platform.

Common ecosystems

Before going into techinical stuff, first there’s some backstory. As with so many stories about computers, it’s about the age old rivals, Apple and Microsoft and the new guy, Google. Even though Apple claimed the iPhone runs “Real OS X”¹ it was in fact Microsoft who was the first to feature a fully cross-platform experience between Windows Phone and Windows 8 devices by having a common Universal Windows Platform².

Photo by Przemyslaw Marczynski on Unsplash

Comparing apples with apples

But Apple has not been sleeping the whole time. Far from it, they have developed a new common language, Swift and graphical graphics API to compete with OpenGL, DirectX or Vulkan named Metal. Also, Apple might combine iOS and MacOS apps to one ecosystem³ and with rumors that future MacBooks might be running on ARM processors, this does seem more likely. Although they did announce that they are working on ways to make it easier to port iOS apps to MacOS and run iOS apps native on Macs⁴, they did say they would not merge them. But it does make it more one ecosystem with common apps. Being able to run iOS apps would make sense. iOS has lots of popular prodcutivity apps that Mac (with it’s small market share) doesn’t have, this could bridge the gap with Windows because basically every large service or company has an iOS app.

Photo by Edho Pratama on Unsplash

From Chrome to Fuchsia

Now let’s talk about the other side, Google. They’ve been working to integrate Android apps in their own desktop OS, Chrome OS. But they’ve been working to make it one universal platform named Fuchsia. Not based on Linux but that’s still in early stages. It might run Android apps on smartphones, computers and what else comes next. We’ll have to wait and see what happens…

All Windows in one basket

All Windows devices share a common universal platform. Windows being the most used client operating system, it seemed like they would become huge with their own competitor to iOS and Android, Windows Phone, especially since they all run the same apps. Also adding Windows RT for tablets and other ARM devices. Well… Both flopped and now we only have universal apps on Windows and Xbox One.

Progressive Webapps (PWA)

If you’re into tech, you’ve probably heard of this. It’s basically a hybrid app but it runs like a normal app or program. They are basically apps written in languages for the web. You can use progressive webapps with browsers like Chrome on desktop and Android by adding to homescreen. And Safari on iOS by adding to homescreen. They run without the navigation of the browser and can use some special code and work offline. These apps are truly cross-platform because they can run on any operating system. Windows now even supports them in their app store.⁵ But the biggest downside is that they only run web languages like JavaScript, HTML and CSS. This limits the use of hardware and complexity the app can have as it cannot run heavy code. The use of WebAssembly which is in it’s early stages could bring change to that, allowing users to run native C, C++ or C# in the browser.⁶

Conclusion

Many have tried and many have failed. There’s no doubt PWA will expand as it’s already taking over although users may not be seeing it. I think PWA is the future as it is truly cross-platform and there are being many optimizations done for web content such as smooth CSS animations and lots of JavaScript libraries out there. So maybe it was good of Apple to not support Flash after all.

Footnotes

  1. https://www.engadget.com/2007/06/04/steve-jobs-iphone-runs-real-os-x/
  2. https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide
  3. https://www.macrumors.com/2018/01/31/apple-still-plans-combined-ios-mac-apps-in-2018/
  4. https://www.engadget.com/2018/06/04/apple-ios-apps-mac-cross-platform-sort-of/
  5. https://www.windowscentral.com/first-batch-windows-10-progressive-web-apps-here
  6. https://speakerdeck.com/christianweyer/webassembly-and-progressive-web-apps-rethinking-modern-application-development