This is a draft, work-in-progress analysis derived from the “Closing the Gap with Native” Headlight task force.
The many mobile ecosystems available on the market today provide a number of different development approaches for applications.
The fragmentation created by that diversity of programming languages, SDKs, packaging formats has brought to the front the possibility to use Web technologies as a way to address as many platforms as possible.
The mix and match of Web technologies and so-called native ones have led to many comparison between these different development approaches, often refered to as Web applications, hybrid applications and native applications.
But the boundaries between these various approaches are often at best ill-defined. This document proposes a taxonomy of these different approaches to ensure a common vocabulary can be used in making these comparisons.
We define the following terms to help navigate the many ways in which Web technologies are used to develop applications on mobile:
- Mobile application
- An application that runs on mobile devices
- Web application
- An application entirely built with Web technologies
- Default technology stack
- Set of technologies provided by a mobile operating system to build applications
- OS application
- An application built with the operating system default technology stack
- Web-based operating system
- An operating system where OS applications can be developed using only Web technologies (even if the default technology stack goes beyond the Web)
- Native application
- An OS application that uses non-Web technologies
- Browser-based application
- A Web application that can be run in a browser
- Web-OS application
- A Web application that runs in a Web-based operating system
- Hybrid application
- A native application that is developed partly with client-side Web technologies; this ranges from a Web app simply wrapped into a native packaging, to a mostly native app that uses HTML/CSS rendering in a few places