The traditional choice for the development of a mobile application is certainly to use the native SDKs offered by the operating system as avoiding intermediate levels is certainly able to have a benefit in terms of performance. However, today the need to develop cross-platform apps and therefore have the same version of the app on multiple systems, especially Android and iOS, is very common. The native approach in this case obliges to have structurally different apps that should be as similar as possible in terms of UI appearance and functionality offered. Maintenance is therefore very expensive and, if it is a problem, this is the case in which a hybrid approach may be preferred as it allows to develop a single application also benefiting from some native functionalities with specific characteristics of the Web. An example of an app hybrid could be a native component (Web View) to display one or more web pages embedded in the app itself or available online.
The rich and interactive experiences we have come to expect on mobile apps have created new standards and expectations for all digital media including the web. The result is websites are evolving to become more app-like in their rich functionality. - Quoted by Raj Aggarwal, CEO of Localytics
In some cases, during my professional experiences, I had to choose a framework that would allow me to develop a cross-platforms solution with a single codebase. Not particularly enthusiastic about Apache Cordova for the fact that the graphical interface is based on a Web View which notoriously requires a lot of resources, I have dealt with React Native and Ionic. Both React Native and Ionic can use ReactJS which adopts a new approach to web development as it is based on the concept of Component and on its life cycle with also the concepts of state and properties. An approach that I much prefer as it fits perfectly with the Atomic Design pattern, with more complex components that include other simpler ones. Furthermore, React Native does not use WebView and, unlike the classic WebApps, it has a mapping of each of its components with a native counterpart.