Mobile Application Taxonomy

Ankur JAIN
5 min readMay 16, 2023

This article discusses the definition of mobile applications or apps, which are computer programs designed to run on mobile devices. Android and iOS are the dominant mobile operating systems, comprising over 99% of the mobile OS market share. Mobile browsing and apps have become the most widespread kind of Internet-capable apps, surpassing desktop usage for the first time. Apps can run directly on a platform, on top of a mobile browser, or a combination of the two. The article outlines the characteristics and differences of each variation in mobile app taxonomy.

Native Apps

Native apps are software applications that are developed for a specific mobile operating system (OS) using the OS’s development kit. These apps are designed to provide the fastest performance and the highest degree of reliability, and they have the ability to access almost every component of the device, such as the camera and sensors.

Android and iOS have their respective development kits — Android SDK and iOS SDK, which are used to develop native apps. The Android platform also provides an additional development kit, the Android NDK, which is used for developing binary libraries that can access lower level APIs.

The main drawback of native apps is that they target only one specific platform. To build the same app for both Android and iOS, developers need to maintain two separate code bases or use development tools to port a single code base to both platforms.

However, some development frameworks like Xamarin, Google Flutter, and React Native allow developers to compile a single code base for both platforms, and offer performance equivalent to native apps. These apps can use all device capabilities, including GPS, camera, and notification systems, making them a great option for cross-platform development.

In summary, native apps offer the best performance and reliability, and developers can use the platform-specific development kits for their development. Cross-platform development frameworks like Xamarin, Google Flutter, and React Native offer the advantage of a single code base for multiple platforms, while still retaining the benefits of native apps.

Web Apps

Mobile web apps, also known as web apps, are websites designed to emulate native apps in terms of their appearance and functionality. They are built using HTML5 and run on a device’s browser, providing users with a way to access an app-like experience without needing to download or install anything. Web apps have limited access to device components and typically lack the performance of native apps. However, they offer the benefit of reduced development costs since they can target multiple platforms with a single code base and can be updated easily without going through app stores.

Hybrid Apps

Hybrid apps combine elements of both native and web apps by executing like a native app but relying on web technologies. This means that a portion of the app runs in an embedded web browser. While hybrid apps inherit the advantages and disadvantages of both native and web apps, a web-to-native abstraction layer enables access to device capabilities not accessible to a pure web app. Using a framework such as Apache Cordova or Ionic, one code base can result in multiple apps that target different platforms, with a UI closely resembling that of the original platform. Popular frameworks for developing hybrid apps include Apache Cordova, Framework 7, Ionic, jQuery Mobile, Native Script, Onsen UI, and Sencha Touch.

Progressive Web App

Progressive Web Apps (PWA) offer several advantages over traditional web apps, including offline functionality and access to mobile device hardware traditionally only available to native mobile apps. PWAs utilize different open standards of the web to provide a rich mobile experience, and a Web App Manifest can be used to configure the app’s behavior after installation. While PWAs are supported by Android and iOS, not all hardware features are yet available on both platforms. Despite some limitations, PWAs provide an excellent alternative to native mobile apps, with increased functionality and reduced development and maintenance costs.

Which one to choose?

Native Apps

Advantages:

  • Provides a high-performance user experience with smooth animations and faster response time.
  • Can access all the hardware features of the device and can work offline.
  • Available in app stores, making them easily discoverable for users.
  • Offers a consistent user interface across all devices.

Disadvantages:

  • Development is platform-specific, requiring separate development teams and code bases for different platforms.
  • Higher development and maintenance costs compared to other app types.
  • App store approval can be a lengthy process and requires adhering to strict guidelines.

Hybrid Apps

Advantages:

  • Provides access to device hardware features.
  • Can be developed using web technologies, allowing for cross-platform development.
  • Can be distributed through app stores or as web apps.
  • Provides a faster development cycle than native apps.
  • Offers a consistent user interface across all devices.

Disadvantages:

  • May not be able to provide the same level of performance as native apps.
  • May require additional plugins to access certain device features, leading to increased complexity.
  • App store approval can be a lengthy process and requires adhering to strict guidelines.

Web Apps

Advantages:

  • Can be accessed through any device with a web browser.
  • Can be easily updated and maintained.
  • Cost-effective as they require only a single code base for all platforms.
  • No need to go through app store approval process.

Disadvantages:

  • Limited access to device hardware features and offline capability.
  • Cannot be easily discovered by users as they don’t appear in app stores.
  • May not provide the same level of performance as native apps.

Progressive Web Apps

Advantages:

  • Provides access to device hardware features.
  • Can work offline and can be easily added to the home screen.
  • Offers a consistent user interface across all devices.
  • Does not require app store approval process.
  • Provides a faster development cycle than native apps.

Disadvantages:

  • Some device features may not yet be available.
  • Limited access to native device APIs compared to native apps.
  • May not provide the same level of performance as native apps

Choosing the right app type depends on the specific needs of the project. Native apps are best suited for apps that require high performance and extensive access to device features, while web apps and PWAs are better suited for projects that prioritise cost-effectiveness and accessibility across platforms. Hybrid apps can be a good choice for projects that require access to device hardware features and a faster development cycle, while still maintaining a consistent user interface across devices.

Thanks for reading! ✌️

--

--