According to the Appota report, Nearly half of the Mobile Programmers write the App with Native.
So, what is Native app, Mobile web app or Hybrid app?
Native App, Mobile web app, Hybrid App (hybrid application), are the basic concepts of mobile programming. Based on programming language, mobile app can be divided into 3 categories: original application (Native App), web application (Web App) and Hybrid App. In which there are more than 1 half mobile dev choose to be a native application.
Original application (Native App)
These are applications written specifically for a platform such as iOS, Android, Windows Phone in the respective languages of each platform such as Java on Android, Object C on iOS, C # on winphone. Each Native App only runs on one platform and cannot be carried to other platforms. For example, the game for iOS will not work on Android devices. Most mobile games today are Native App.
– About performance, the native app runs faster than mobile apps in most cases. However, the difference in applications may be small, acceptable and difficult to identify by users. Currently, with the game, the native app surpasses and wins absolutely.
– About the native app's ability to access hardware (such as camera, GPS, recording device …) and can access local rights such as copying, creating, recording, reading files (on the set mobile memory), contact information, personal information, making calls, texting … In other words, the native app can exploit the platform's most powerful hardware. While the Mobile Web app is not possible (it is possible to read the file, like upload).
– In offline mode: Native app has advantages over mobile web app (always have to run online). In offline-mode, the native app will use the previously cached data at the last time the user accessed it online.
– Unable to cross platform: a native app can only run on a certain operating system.
– For each HDH, programmers must write their own native code, leading to inconsistencies between application versions, high development costs and the ability to master multiple languages in the programmer. Sometimes it requires developers to use proprietary tools and only work on a single environment like: using xcode on Mac OS (if you want to develop apps for iOS).
– Moreover, maintenance or upgrading will take a long time. Do have to fix each app on each HDH, procedures put on the application market and wait for approval (sometimes denied because of violating some regulations of the application market), so the update does not reach the user immediately ie, they must update themselves when entering the app market.
– The variety of versions of HDH impedes the popularization of native apps. Devices running the older HDH version will not install.
Web application (Web-based app)
– No need to install on the machine.
– Advantages for developers:
+ With a single version for all, should reduce the cost and time for development, maintenance, as well as future upgrades.
+ Unlimited programming environment, programmers can work on most HDH.
+ The application does not need to be rebuilt via the SDK or another proprietary development tool like xCode (just deploy on the server and run).
+ The updated version will come immediately and transparently to the user (right after deploying) without having to go through the procedure and waiting for approval as the application market.
– Can be marked by search engines (good for SEO).
– Easy to broadcast: users can find it via search engine, share links from email, social networks or from online advertising services like Google Ads.
Although HTML5 has great compatibility, but along with it's weaknesses. It depends on the browser, platform, type of device. Especially when the level of market fragmentation of large mobile devices today is even more difficult for programmers to choose the right part of HTML5 can use.
– Performance, web-based apps don't run as fast as the native app, and don't bring the full experience that the platform can provide, which is why most mobile games don't use the web app. – Always run online. When the network flickers, the web application immediately shows its weakness.
Hybrid App (Hybrid App)
Hybrid App is an application that combines the advantages of both Mobile Web App and Native App. Accordingly, the basic parts of the application are still written in the web language, but are placed in the native container, so it can still be loaded into the repository.
Hybrid can combine the strengths of both the native app and mobile app and exploit the highest experience of the platform.
For example: Display content on all mobile devices, make the most of mobile device features such as GPS, Camera, accelerometer sensor … this cannot be done on mobile web, use Application application even without an internet connection. Mobile applications of some current news sites like Vnexpress, Dantri etc. are hybrid applications.