Desktop apps have been around for a while — since the beginning of the personal computing revolution. They’ve weathered the transition from floppy disks to DVD’s. Survived the internet era and the mobile revolution. The question is — why?
I’m here to argue that the humble and unloved desktop app is here to stay. In this article I’m going to make a case for desktop apps by focusing on two technologies in particular that have been lauded as desktop app killers - Mobile /apps and web apps.
Would be assassin #1 — The mobile app revolution
Recently, Apple made a really interesting announcement. No, not the iPad pro (but we’ll come to that), or the MacBook Air. I’m talking about the 1st of November, during Apple’s fourth quarter earnings call. Apple announced that it will no longer be reporting unit sales of the iPhone. The reason? Certainly not what Apple had to say:
“A unit of sale is less relevant today than it was in our past,” Maestri said, adding that the number of units sold does not necessarily represent the relative health of a product’s underlying business.
The real reason is that iPhone sales have fallen flat. The smartphone market is saturated, and new hardware simply isn’t innovative enough to convince people they need to buy a new phone. Apple shares fell by 7% on the news. Not even the mighty iPhone X has made a difference. For me, this marks the end of the mobile revolution. And that’s not a bad thing.
“Whatever you’re doing, do mobile first” Google’s Eric Schmidt declared from the stage at mobile world congress in 2010. “The smartest developers start with the presumption of location, locality, connection and interactivity.” And who could have disagreed? Mobile was eating the world. And developers were switching to mobile in droves. The writing was firmly etched on the wall. The PC era was over — mobile would be the new computing paradigm.
And so it came to pass. It affected me personally. In 2013, my partner and I were looking for funding for a desktop app. And it was hard! Most seed stage investors simply didn’t want to know about desktop software. This made no sense to me. People were still using PC’s, right?
Mobile has always been one breakthrough away, but has never quite hit the mark. For example, despite Apples’ objections, it became clear that the screen on your phone simply wasn’t large enough to do anything truly useful or productive. Their initial response was the iPad. If you want to create rather than consume, you should buy an iPad! Slate declared the following
“Apple killed the netbook, more or less single-handedly, and we should all be grateful for it”.
The author then reluctantly added “True, the iPad, unlike the netbook, doesn’t come with a keyboard or a pointing device. But you can buy a keyboard for it.” Turns out keyboards are important. A tablet and a keyboard is just a bad laptop.
It’s now 2018 and look no further than the most recent version of the iPad Pro to see that Apple are still trying to convince us mobile is the future. It’s got a chip, Apple says, that is 92% faster than all laptops released in 2018, including those containing intel’s flagship i7 processor. To reinforce this point, they brought Adobe on stage to demo Photoshop. Photoshop! on an iPad! Looks like my laptop is headed to the recycle bin. But even now, Photoshop on the iPad is a heavily compromised experience. I won’t go into examples — you should head over to this excellent article written by the Verge’s Nilay Pattel for his thoughts on Photoshop for iPad.
Despite Apple’s (and others) best efforts, I still need my PC. New hardware form factors alone are not going to kill the desktop app.
Would be assassin #2 — Web apps
We have finally reached the point where web technologies can compete with native technologies. Feel free to debate the pros and cons of developing for the web vs. the desktop in the comments. But technology has very little to do with it. In my opinion, both desktop and web can provide a pretty decent user experience. Just look at the similarities between design tool rivals Sketch(desktop) and Figma (web). But native desktop apps have one considerable advantage. They are treated by the OS as a first class citizen.
Operating systems are designed to be containers for programs. So they do a really good job of allowing us to find, launch, use and switch desktop apps.
Finding
Windows, Mac and Linux all have app stores that allow you to easily discover, find and install the software. Yes, I could use Google. But that’s one extra step, and friction really matters. Chances are, if you are reading this, you are a techie. And we do love a simple UI. A flick, a swipe or a scroll in the right place can make all the difference in the world. Just ask Tinder.
One of my favourite bloggers, Ben Thompson of Stratechery puts it like this:
Finding and installing apps is trivial, easily accomplished on the bus, on the couch, or on the can. And it’s great for developers, as a set; the ease with which apps are installed via app stores likely means exponentially more apps have been installed in the last five years than in the thirty-five years that preceded the App Store.
Launching
This is important but subtle. The ability to pin a program to your desktop or launch and app from the dock/task bar is everything. It puts an important task a mere one click away. No user name or password screen. I click, and I’m there. Again, it’s all about Friction, or the lack thereof.
Switching
When using my browser, I normally have about 15 tabs open at any given time. And I find flicking between them is a royal PITA. Especially if it’s something intensive that requires interaction with other pages or applications. We use Zendesk at Hiri, which, for the most part, is excellent. But replying to users isn’t always straight forward. I may have to involve someone else on the team or copy and paste from another ticket. That means flicking between (even more) tabs and to make things worse, Zendesk has its own tabbed UI. Tabs within tabs.
Same goes for this blog post. Although Medium provide a perfectly adequate UI for writing, I wrote this in notepad and copy/pasted. That way, regardless of what tab I was using for research, I could easily flick back to my article via the glorious alt-tab. It removes a tiny piece of bothersome friction.
Using
I could cover some well worn territory here and say Apps on Operating Systems tend to be consistent with the UI of the OS. Or ‘what happens if you need to use it offline’. I could also argue that native apps are faster (Sketch above uses Apple’s Metal framework to good effect). But that’s not it. I like using desktop apps because they feel more substantial.
In his excellent book Thinking, Fast and Slow, Dr. Daniel Kahneman breaks the brain down into two decision making systems. System 1 is how we ‘feel’ about something, is unconscious, intuitive, automatic and fast. System 2 is conscious, rational, deliberate and slow. Guess which system is responsible for the vast majority of our decisions?
Rationally, I know that there is not much difference between a web based app or a desktop app. But I feel that a desktop app is a more substantial thing. I feellike it should work better because of its relationship with the OS. And how I feel is how it is — that is my reality. And I doubt I’m alone.
It’s complex.
I’m not wedded to desktop apps. Some things are just better online. I don’t feel there’s a need for a dedicated app to book a flight or read the news. But for some reason, I don’t like doing substantial things online. For example, design.
I’m really impressed with Figma, and maybe I just need to get over it, but I prefer that Sketch is doing its own thing, in a separate compartment that is not my browser. I like that it asks me if I would like to update rather than force it down my neck like most online SaaS stuff. I like that when I open a file I’m not uploading it to someone else’s server. I like that I feel that I’ve paid for, rather than rented the tool I’m using.
The reality is, as long as Operating Systems — and let’s be honest here, we’re talking about Windows and Mac OS- exist they are always going to favour the tools that utilise their respective desktop environments. Apple have doubled down on their app store with a recent redesign and the vertical integration of hardware and software using bespoke languages and deeper hooks into the OS. Microsoft have followed suit with their own app store and Surface hardware.
Kevin Kelly discusses the evolution of technology in his book — “What technology wants”. He makes the case that if the conditions are right, some technologies are inevitable:
“Science-fiction guru Isaac Asimov made the astute observation that in the age of horses many ordinary people eagerly and easily imagined a horseless carriage.”
The basic form factor of a PC is the product of natural and obvious evolution. It’s difficult to imagine a PC or laptop being useful without a screen a keyboard and a mouse. And the operating system/desktop app combination is the inevitable consequence of this technology. It has endured because we haven’t found the next step. iPads with keyboards are a just a bad laptop. Web apps are a bad facsimile of desktop apps. They are not the strongest branch in the evolutionary tree that is our interaction with computers.
I think this will resonate with most of us IHers. Some people think that laptops are just big FB/Instagram screens, and I can't imagine developing a desktop app for those use cases.
But we're developers, designers, creators, marketers, etc. These tasks obviously suck on a phone.
But I should also say I think of my laptop as a terminal to the internet at this point - if I use an app, I'm afraid if I'm not 100% sure it's keeping important stuff in a cloud somewhere. I don't want a doc, my code, my plans, or any other important info to exist on a single hard drive (or to expect any local backups to live long). My laptop is basically a browser and a Linux shell, with some infrequently used apps for working with files, images, etc.
For my app, a desktop client might be a cool thing to have, but I would probably say "Should I build and maintain a native UI? No way, let me reuse my existing design for consistency and my own sanity" :) Maybe I would use electron or something, but any native code would be limited to specific features - a quick status bar icon that interacts with my frontend JS, or a file option to save into the app.
I trust my browser more than native apps, I'd hate dealing with the intricacies of OSX/Win/Linux in any large product, and I need to support the web already.
I think we're getting close to frameworks that you can use to write a web/mobile/desktop app in one, with enough customization to interact with native functionality. It's too bad that's probably html/css/js though :-P
Thanks for the considered response! A few points I'd like to respond to:
In our case (we build an email client) everything is stored on the server anyway. But that aside, I really like storing my desktop files on Dropbox. At this stage Dropbox looks like it's going to be around for a long time, which may not be true for some of the SaaS products out there.
We build using Qt and QML, so it's reasonably easy to maintain across Linux, Mac and Windows. Although in some cases it's not ideal. Qt support for notifications on Linux isn't wonderful. We have a bit of work to do here.
I was going to write further on this subject in the article, but figured it was getting a bit unwieldy. I'm really excited by AR/Mixed reality. I think we'll see a genuine sea change in terms of how content is served on a "Spatial Interface" when true AR glasses begin to appear.
Oh yeah. Meant to mention I checked out your site and it was obviously a good fit for a desktop app - but your link is broken :)
Definitely know what you mean about SaaS disappearing. I like open source, and apps that will make data portable :) Even Dropbox is dropping Linux sync support if you encrypt your drive or the data isn't on ext4 or something, right?
Maybe there could be a qt bridge where you right with that and it can export to an HTML format to keep your app in one code base. QT has some mobile support?
I'm excited about VR and AR as well. One of my failed ideas is https://3dscene.me haha. I don't get VR sickness, so I would totally be down for a VR/AR desktop if the resolution was ready for it!
There would be always people preferring desktop software because it is their professional setting, their environment, etc.
The reality is, this number of people is constant or even decreasing with time, while mobile and web users are growing in numbers.
Also the quality of non-desktop software is anyway growing and all these things account for the "web/mobile revolution".
It is also obvious that everything which can be developed for the web is done on the web for various reasons, like
lower cost of development, better available pricing models (monthly subscriptions...), easier maintenance and deployment, easier marketing, etc...
Hence I think it would be also good to mention a friendly warning about actual problems of developing desktop apps.
Agreed with the 'feel' of a desktop app vs the web, but what's your thoughts on building an app with electron or similar?
It's still possible to have a lot of the 'feel' you're talking about with an easily accessible icon in the top bar for example, but what are the downsides?
Hi Daniel. We don't use Electron, so I can't really comment on the experience. We have had some customers note that they were glad we are not using Electron - this would lead me to believe the experience is less than it could be. From my perspective, if it gives you a desktop like experience, why not? I'm technically agnostic.
@dpower thanks for the article! We just went live with a desktop app last week for some of the exact reasons you cited in your article.
Just took a look at your product. Desktop "feels" like the right fit. Something I didn't really get into in the article, but I definitely think (feel) something on my desktop is safer.
Thanks for checking it out! Feel did play a big role as well. You're completely right, information on my desktop "feels" safer.
Author here. Interested to hear your thoughts or elaborate on my own.
This comment was deleted 5 years ago.
"From a developer's perspective, it must be an absolute nightmare to keep all your customers up to date as the operating systems change.'
It's not too bad - we use Qt and QML, so it's reasonably easy to create one app that works well on all platforms. Linux can be tricky though - so many different flavours and we do come across issues specific to a certain distro.
"And people don't like paying monthly subscriptions for desktop applications."
True. We do a yearly subscription or a lifetime license. Signups are about a 50/50 split.
This comment was deleted 5 years ago.
It's $40 for an annual license and $119 for a lifetime. We based the lifetime license of a LTV of 3 years.
This comment was deleted 5 years ago.
This comment was deleted 5 years ago.
This comment was deleted 5 years ago.
This comment was deleted 5 years ago.