End-user platforms for the next while
There’s apparently confusion out there about what platforms we use that run on specific end-user devices and for which applications can be written by any third party. Operating systems are such platforms – but they’re not the only ones. Web browsers are too. A Java Virtual Machine is as well, and Adobe’s AIR.
Here are what I think are the near future’s most common platforms for end-user devices (not in any particular order):
- Windows 7 and earlier
- Windows 8/RT Metro (this is a new platform since applications will need to be rewritten for it)
- Mac OS
- Browser with medium-size screen – i.e. on a laptop/desktop/tablet (I’m reserving “large” for TVs)
- Browser with small screen – i.e. on a phone (note that if you have to create two versions of your website it’s because there are two platforms to be addressed; there are also differences among browsers but those are generally handled within a single version of the site) UPDATE: There is a trend toward using Responsive Web Design so that a site can handle a range of screen sizes with just one version.
- iOS with small screen – i.e. on iPhone and iPod Touch
- iOS with medium screen – i.e. on iPad
- Android with small screen (Android with medium screen isn’t on this list because not only have Android tablets not caught on but not many apps are being written for them, with users relying on a browser and on apps written for phones)
The iPhone initially didn’t permit third-party apps to run “native”, i.e. directly on iOS; instead developers had to write their apps as websites. But this was before HTML5 came along and allowed websites to do things that had previously required a native app, so a developer revolt forced Apple to change its mind and permit native apps – though only through an app store that required approval by Apple in order to guard against malware. (What Apple did reluctantly has turned out wonderfully for them.)
Particularly on phones, native apps have provided a much better user experience than browsers. But this was once the case on Windows and Macintosh machines too, and then both the browsers and the web apps that ran on them got much better, to the point that (for instance) doing email could be done just as well through a website instead of a native app, thanks to the creation at Google (a web-centric company) of Gmail. I don’t think it’s happenstance that the popular browser that’s been lagging its peers of late has been Apple’s Safari: Apple wants apps that are usable on its hardware to be usable nowhere else, so it encourages native apps for iOS and Mac OS and is not inclined to encourage web apps.
So if you’re writing an app and you want people on the above popular platforms to be able to use it, how should you write it?
The very best user experiences are those designed specifically for the device or at least tailored to it, and where the app’s response to a user action is, when possible, generated locally without requiring server involvement that might take a while – depending on the user action, even a tenth of a second might be an irritating lag.
I don’t really have a conclusion to this post, except to say that I hope it gives even one person a better understanding of the end-user device platform situation.