The launch of Apple’s App Store in 2008 inherently changed how we consume content on the web. It heralded a change in thinking for consumers that has shaped the way we use and consume the web today. Instead of searching for websites with a search engine consumers were invited to search a curated directory of applications attached to an App Store. These applications were not powered by HTML but instead a full SDK specific to Apple’s hardware that provided developers with native APIs and a User Interface toolkit.
From a business perspective this model clearly is a brilliant one. If you can make it work you can control the means of production and the means of distribution whilst simultaneously engaging an army of enthusiastic and entrepreneurial developers to build your business. Indeed the model was so successful that Apple’s competitors copied it. The Android Market, Blackberry’s App World, Windows Phone Store and Amazon AppStore all arrived and with them their own SDKs for development.
The App Store has become such a dominant force in the way that users consume content on the web that businesses are willing to support up to four different SDKs to deliver their content. Frequently native applications are just content - they list products, or train times or display pictures. If you need convincing that App Stores are now valued over the Open Web you have probably experienced visiting a mobile website on your phone and been invited to view the same content by installing a native application.
Whilst journalists and developers were fainting over the creations emerging from Infinite Loop the Web Standards movement continued to progress. Browser vendors are now all agreed that standards are the way forward and real progress has happened. Even the historic loathing of Internet Explorer is not relevant any more. Microsoft have implemented Web Standards and remain committed to doing so.
Browsers can now access most of the hardware devices that are often cited as an argument for using native applications. Browser APIs now exist for accessing Video and Audio devices. Canvas and WebGL vastly expand the capabilities of what can be shown on a page. With WebRTC you can make a video and audio call between two browsers without needing anything else. No plugins - just a browser.
The point is that interoperability is only dependent on a browser that can be created against a set of defined standards so your choice of browser is not even important. This means your choice of operating system is not even important.
Projects like PhoneGap show what App Stores mean for interoperability. By design they are not interoperable because App Stores are a revenue stream. Native apps like iMessage are the epitome of everything that is bad about App Stores. A simple messaging application is only available to iOS users on Apple Hardware. Is this progress?
Developers and business leaders that believe in the Open Web need to build on what browser vendors and the Web Standards movement have delivered. The road of native applications and App Stores leads to a less open and interoperable web and it should be firmly rejected. The idea that a user should need no more than a URL and a browser to access services or content is now achievable and real.
We don’t need App Stores with proprietary SDKs any more. The web is the platform.
Have an update or suggestion for this article? You can edit it here and send me a pull request.
Build your own Vim statusline
Statuslines in Vim are not hard to create. Making your own means one less dependency in your life.
Custom Vim Bindings in tmux 2.4
tmux 2.4 made a significant change to key bindings. Here is how to support custom keybindings for versions before and after tmux 2.4
Using template files in Vim
Vim templates or skeletons, allow you to specify a template to be used for new files with a certain extension.