A hybrid app is a native mobile app that uses a native ‘shell’ to wrap web content. Hybrid apps are installed through an app store, run on the device and provide access to enhanced native device hardware, but are written primarily using HTML, CSS and JavaScript. Instead of using the native SDK to create the application, hybrid apps typically wrap a web application with a native web view controller full screen, without the address bar or other normal browser controls. Frameworks like Cordova or Titanium have made development of hybrid apps much simpler by providing an easy-to-use template for the native app and a web-to-native abstraction layer that allows JavaScript access to the native APIs provided by the platform.
There are many reasons why building a hybrid application makes sense, such as native app store distribution, or access to native APIs that are not available to mobile web apps. Use the skills you know and have today. If you are already an accomplished web developer, building a hybrid app requires a short and easy-to-achieve learning curve, and there are no new languages to learn.
Distribution through native app stores - Because hybrid apps use the native SDK to wrap the web app, they can be distributed through the native app store, making discovery and distribution easier for users. Access to native APIs, The web-to-native abstraction layer provided by hybrid frameworks provides JavaScript access native APIs and capabilities that are not available to mobile web apps. Runs locally on the device, and works when offline - Hybrid apps can package the required HTML, CSS and JavaScript within the app that is installed through the app store, which means they run locally on the device and do not depend on a network connection to function. Uses a shared code base across multiple platforms - Using HTML, CSS and JavaScript to build a hybrid app makes it easy to share the majority of code between different platforms.
While there may be some differences between the renderings, it is no different from having to support multiple browsers. Fast development time if you already have an existing web app, or code base that is built on the web platform, building a hybrid app is typically faster than writing an app using the native SDK, and because of the ability to share code between platforms, significant time is saved through code reuse.
Hybrid apps do have some drawbacks compared to native apps or web apps, and you must decide if those drawbacks outweigh the benefits of writing a native app.
Hybrid apps may feel slower than a native app or a web app running in the browser because the JavaScript engine’s just-in-time compilers may be disabled by the operating system, in particular on iOS.
Like mobile web apps, hybrid apps use the native web rendering engine on the device, which means that there may be subtle differences between the way content is rendered. For example, when editing an , the native date-picker may be provided by one device, but not by another.
Every platform has its own look and feel, and offers a set of pre-styled controls that developers can easily take advantage of Mimicking those controls is exceedingly difficult.
Updating a mobile web app has a nearly instant return, once your app is uploaded, anyone using it is using the latest version. With hybrid apps, you must upload your app to the app store, wait for it to be approved and then wait as users upgrade from their current version to the newest version.
Native apps will typically have access to new SDK features faster than what’s available to hybrid apps. It takes some time for the abstraction layer to be written and made available to developers to use.
Q. Huynh, M., Ghimire, P. and Truong, D., 2017. Hybrid App Approach: Could It Mark the End of Native App Domination? Issues in Informing Science and Information Technology, 14, pp.049-065.
Ionicframework.com. 2020. What Is Hybrid App Development? - Ionic Framework. Available at: https://ionicframework.com/resources/articles/what-is-hybrid-app-development