Have you ever downloaded an app on your phone or tablet and then tried to access your account from that app on a browser, only to find out that a web-version of the app doesn’t exist?
In the age of iOS and Android app development, it can be surprisingly easy to forget that the first widespread multi-user applications that communicated with servers to share data were web-based applications. Sure, your standard computer applications existed in the form of Microsoft Office and other desktop-based experiences, but the first truly integrated application experiences that could be accessed on any device were web-based applications.
Web based applications often are based on the simple CRUD operations and a RESTful api. CRUD here standing for ‘create’, ‘read’, ‘update’, and ‘delete’, and the RESTful API being an application program interface that sends HTTP requests to the server that correspond with one of the four CRUD operations.
I would like to boldly claim that every non-game app on your phone uses a CRUD system. If you have a to-do list app, you can see how easy it is to apply the CRUD principle: create a new item in the list, read the item (display it on the screen), update an item on the list, or delete an item. These same principles can be applied to nearly every single application in existence. YouTube is a CRUD application with some fancy machine learning recommendations. You can create a video, read a video or comment (display them), update content (change titles, comments, videos, etc), and delete content. The bread and butter of YouTube comes in how they use these operations to provide an engaging user experience.
Now, given that the backbone of these CRUD applications are relatively simple, and given that the developers of mobile apps already have the scaffolding for the system coded, why the hell aren’t there more web-based versions of existing apps?
why the hell aren’t there more web-based versions of existing apps?
Personally, I don’t think there is any excuse for not having a web-based version of your app available to users. By not providing alternate versions of access to your application, you are limiting the experiences of the users, making it more difficult for people to access your service or app, and generally limiting the impact your app can have on an audience or demographic. It’s like saying you are only going to develop an email client app for iOS and not Android. Sure there are some instances where that makes sense, but you are losing out on a huge group of users simply because you can’t be bothered to include them in your app development.
As someone who does work in web development and who has dabbled in web-app development before, I am going to outline the reasons I can think of for not developing cross-platform. And then I am going to rant about why those reasons are stupid.
“Developing Cross-Platform is Too Hard”
I understand that developing an application is difficult. I also understand that learning a programming language to actually build the app in is difficult. I have tried my hand at Swift development for iOS and I took courses in Java development in high school. These are difficult languages to learn. I settled on PHP as my language of choice for developing web-apps, but I know plenty of people who develop web apps in Python or Java as well. If you are developing an app for the first time, or if you only know one programming language fluently enough to develop an app, learning a second or third language to scaffold your system into can be daunting and overwhelming. It may not be worth the time investment to set up the systems for cross-platform app development.
That still is not an excuse!
Server-side frameworks exist in a multitude of languages that can help you scaffold the back-end of your application. From there its a matter of building an API wrapper for your database requests, and make API calls from the platform of choice.
Is it more work than just sticking with one platform? Yes.
Is it worth it? Absolutely.
Do I, as a consumer, demand it? Always.
“The app works best on a mobile device”
The only reason the app works best on a mobile device or a tablet is because that’s all you have developed it for. Of course the app works best on the device you built it for. You still should build your applications to be as accessible as possible. That means more than just enabling screen-reader support and dark-mode. It means making sure your app can be reached on as many devices as possible. I don’t buy this excuse.
“The app stores data on device for security”
I have seen this the most for fitness apps, finance apps, and journal apps. A recent example I came across is the app “CoPilot”, a finance and budgeting app with useful features around spending tracking and trend monitoring. The app ended up not having a specific feature I wanted in a budgeting app (namely: Apple Card integration, but I later learned that Apple Card doesn’t provide these integrations to third parties unless you manually export to a .csv), but before deleting the app I checked to see if there was a desktop version available. Either as a desktop app or as a native web app. There wasn’t. And there is no legitimate reason for there not to be.
The CoPilot app links to my existing bank accounts and makes requests to them for data. Then, the data is processed and displayed in a specific way on the device. There is no reason a web-based version of the app shouldn’t exist. You can make the same requests to the banks in a browser as you do from a phone.
Another app that I encountered that only stores data locally is the mood-tracking and journaling app “Daylio”. The app is honestly an amazing app and I will continue to use it, but there are currently no plans to implement native-web access. What I don’t understand and find unacceptable from a user’s perspective is this: all the app stores is my mood, the activities I select, and any text I enter into the journal for that day. I should be able to access that data from any device as long as I log into my account.
So, now what?
Um… I don’t know. I guess that as users we can reach out to developers and request that they make cross-platform compatibility a priority for the next update. We can also make sure to give positive reviews to apps that have cross-platform availability, but until developers actually start taking web-apps seriously as a way to let users interact with their platforms, I’m afraid we won’t see much of an improvement in this arena. In fact, I’m afraid that web applications will slowly begin to die as on-device applications become the norm for a majority of systems.
We can only hope that enough people want to see this change.