A mobile software application developed for use on devices powered by Google’s Android platform. Android apps are available in the Google Play Store (formerly known as the Android Market), in the Amazon Appstore and on various Android App-focused sites, and the apps can run on Android smartphones, tablets, Google TV and other devices.
As with Apple and its Apple App Store apps, Google encourages developers to program their own Android apps. While many Android apps can be freely downloaded, premium apps are also available for purchase by users, with revenues for the latter shared between Google (30%) and the software developer (70%). Additionally, some Android Apps follow the freemium business model, wherein the app developer can derive revenue on free apps via Google’s in-app billing capabilities.
The general distinction between an interactive web site of any kind and a “web application” is unclear. Web sites most likely to be referred to as “web applications” are those which have similar functionality to a desktop software application, or to a mobile app. HTML5 introduced explicit language support for making applications that are loaded as web pages, but can store data locally and continue to function while offline.
Single-page applications are more application-like because they reject the more typical web paradigm of moving between distinct pages with different URLs. A single-page frameworks like Sencha Touch and AngularJS might be used to speed development of such a web app for a mobile platform.
There are several ways of targeting mobile devices:
Responsive web design can be used to make a web application – whether a conventional web site or a single-page application viewable on small screens and work well with touchscreens.
Native apps or “mobile apps” run directly on a mobile device, just as a conventional software application runs directly on a desktop computer, without a web browser (and potentially without the need for Internet connectivity); these are typically written in Java (for Android devices) or Objective C or Swift (for iOS devices). Recently, frameworks like React Native and Flutter have come around, allowing the development of native apps for both platforms using languages other than the standard native languages.
Hybrid apps embed a mobile web site inside a native app, possibly using a hybrid framework like Apache Cordova and Ionic or Appcelerator Titanium. This allows development using web technologies (and possibly directly copying code from an existing mobile web site) while also retaining certain advantages of native apps (e.g. direct access to device hardware, offline operation, app store visibility).