To quote Ionic:
This is accomplished by using an invisible mini-browser to host a web app that looks exactly like a native app. This simple concept lead to..
The dark times.
For a long time a hybrid app stopped there, it was just a website that ran inside an app that you could download. It would look and behave identically on both Android and iOS. And for a long time, nobody cared. Users on both platforms were not expecting anything specific ‘look’ from their apps. Smartphones were new, and there wasn’t a standard ‘grammar’ for mobile apps.
A brighter future.
Fast-forward to today, and that doesn’t fly. Nine times out of ten, when you download an app that uses these old techniques you can tell. It doesn’t look like an app. It doesn’t feel like one either.
To keep pace with user expectations, Hybrid frameworks also provide custom components. These are extremely important, because they help solve the look and feel problem. Hybrid frameworks like Ionic will give you, for example, a button component. This button looks like a standard Android button on Android devices, and like an iOS button on iOS devices. They go on and do this for every visual element the native apps provide.
This change is extremely important, because it allows for separation between views as a concept versus actual implementation in specific, which is handled by the framework.
There are quite a few advantages to working with a Hybrid framework:
High Degree of Code Sharing
In my opinion, Hybrid apps are where you get the best code sharing. This is accomplished because the UI is actually the same code base for both platforms. In the same way that you can abstract the difference between and Android button and an iOS button, you can in many cases abstract out the differences between the iOS camera and the Android camera. While in many cases this is not true, in many cases it works quite nicely. The result is that you have to do less thinking about your iOS app vs your Android app. You can focus on how you’re going to help your user, which I believe is a huge advantage.
Uses Web Technologies
There are also some disadvantages:
I have found that libraries for hybrid frameworks are either extremely high quality, or fail to do their job. This makes it difficult to complete an app that uses native features without diving into building native plugins. (I actually wrote an article about this in ionic!)
Look and Feel
I know I was just talking about how great the look and feel is in hybrid app currently, but I think they are still a hair different than ‘true native’ apps. The learning curves between Hybrid and native are very different for the UX. It’s easier to make a okay-looking app in a Hybrid framework than it is in any other method. But at the same time it’s harder to make an A+ looking app in a Hybrid framework than it is native. You don’t get anything for free after all.
Hybrid applications are a fantastic option for people who are alone or in small teams who need cross-platform support for their simple application for the minimum amount of work.