Web of Apps
It’s pretty clear mobile applications are the new World Wide Web in terms of usage and growth. Some of the best qualities of the prior web are beginning to find their way into the two most popular runtimes and I’m beginning to wonder if they’re attempting to emulate the prior web’s best qualities to achieve more growth and utility for customers. The prior web benefited from a few key things worth reviewing:
- A ubiquitous viewport for accessing destinations.
- A way to target and arrive at any destination from any other destination.
- A seamless way to progress to new destinations and back regardless of their origin.
- A universal addressing mechanism.
- A common, easy to develop for runtime with progressive loading.
Both runtimes appear to be making an effort to live up to these qualities as best they can given business constraints. Android’s system back button has echoed the browser back button stitching together past hops in and through apps. iOS now has a recently added (albeit clumsy) way of navigating back. Both Android and iOS now have mechanisms for deep linking into installed apps which mimic the experience of moving from one context to another while maintaining congruity. This also hints at a sorely lacking universal addressing mechanism. iOS has introduced “On-Demand Resources” and “App Thinning” as an attempt to reduce the overhead involved in installing and launching applications — nowhere near the convenience of loading a web page, yet. Both runtimes make an effort to allow developers participation in system-level search through an opt-in implementation of provided APIs. This unfortunately pales in comparison to the opt-out approach of indexing and searching on the web. Recently a rumor cropped up about Google investigating Swift as an optional programming language for Android. This would only slightly improve the abysmal situation of a common language we enjoyed on the prior web. We used to moan about browser incompatibilities and now the effort involved in learning a completely different language and set of APIs is so daunting we don’t even bother.
I suspect things will continue to improve, even the when they involve both runtimes coming together and hashing out differences. Right now we live in a bifurcated web of applications. Information is trapped in compiled applications across two runtimes, not because it’s what developers intended but because the systems designed to execute them wasn’t thought of as an open system.