Mobile application classification
Along with the popularity of mobile devices, smartphones, the time people use mobile devices can even surpass desktop and laptop computers. This makes browsers and mobile applications the type of applications with the most internet access.
With so many users, mobile devices also own an app store as large as computer devices. From playing games, watching movies, listening to music, working at the office, updating news, etc., there’s an app that meets our needs.
So in the process of using mobile applications, have you ever been curious about how they were built? How do they work? Are they clearly categorized, or simply “mobile apps”? How to identify what they are?
Let’s find the answers to those questions through this article!
Before diving into each type of application, let’s take a look at the number and name of the application type. As shown in the opening image, mobile applications are divided into the following four categories :
- Native app
- Web app
- Hybrid app
- Progressive Web App
Mobile operating systems such as Android and iOS have a software development kit (SDK – Software Development Kit), so that developers can design and develop applications specific to each system. operating. Such applications are called Native apps.
Native apps have the fastest processing speed and highest reliability. They often adhere to the platform-specific design principles, thus providing a more appropriate user interface than Web and Hybrid apps. Due to its tight integration with the operating system, Native apps have direct access to almost every device component (camera, sensor, lock storage supported by hardware, etc.).
The most obvious downside of Native apps is that they are only for specific platforms. In case you want to build an application for both Android and iOS, it is required to have 2 independent pieces of code for each platform, or there is a tool that allows the transfer of the base code to separate code. for each platform (eg Xamarin).
Today, many different manufacturers jump into the Android smartphone market, each wanting to build their own ROMs. This has made it very difficult to develop and update Native apps on the Android platform.
Web apps are websites designed to look like Native apps. These applications are usually written in HTML, CSS, JS and run on mobile browsers. For example, with Facebook, there are Native apps on both Android and iOS, and if you want to use the browser, you can access m.facebook.com (this is the mobile web app).
Web apps are designed to run on many mobile operating systems, reducing development and maintenance costs, upgrades, etc. Therefore, Web apps run slower than Native apps.
Hybrid app is an application that combines both the advantages and disadvantages of Web apps and Native apps. Hybrid apps can be uploaded to the app store to install and run like native apps, but most of the app’s processes are based on web technology. As part of the application runs on a browser embedded in the application (also known as webview ), processes based on web technology will be run on the webview and display the results on the application window.
The Hybrid app accesses the device’s functions via a web-to-native abstract layer. Depending on the framework used, the Hybrid app can be developed for specific platforms, while retaining basic, cross-platform interactive code.
Progressive Web App
Progressive Web Apps (PWA) works similarly to a website, but differs in that it can be used without a network connection and has access to mobile device hardware – two key features of Native app. PWA combines different standards of modern browsers to enhance the user experience, such as a JSON file called Web App Manifest which is used to identify and adjust application behaviors.
PWA can be used on both Android and iOS platforms, but not all functions are supported, such as on iOS, since version 11.3 supports PWA.
How to know
In fact, there are 2 common types of applications: Native app and Hybrid app. Based on the above characteristics to check can be quite complicated in some cases. So I will introduce a way of “instant noodles” to distinguish Native app.
First, we need to turn on developer mode. In the settings, depending on the device that version information (Build Number) will vary a bit. Find and press the Build number repeatedly until the system notifies user mode has been turned on. You can also find instructions to turn on deverloper mode for each model on google.
After deverloper mode is enabled, we go to Settings> Developer Options (Deverlopder Option)> turn on Show layout bounds.
Now turn on the application and check. If the app interface appears as many squares as shown below, then that is the Native app.
In the case of a Hybrid app, the screen will look like this:
For the remaining 2 types of applications, Web apps are easy to distinguish, PWAs can work as in this video: https://www.youtube.com/watch?v=UVcPyiRLcgU
According to my research, PWA:
- Load like websites and use the same technology as the web.
- Can operate offline.
- Interoperability, use of hardware resources of the device.
Previously, PWA could not be installed via google play store, but since 2019, google has allowed developers to upload PWA to google play store. This makes it harder to tell which applications are which.
Reference : Owasp’s Mobile Security Testing Guide