Recently I started to dig into mobile app development. I had to find a framework for creating hybrid application and I picked up the most popular one – latest Ionic.
Ionic is a wrapper for PhoneGap/Cordova framework. Cordova is a framework turning JS-based app into mobile app. You can say Cordova is a layer between your JS app and mobile phone. Ionic adds Angular 2 support + visual components library for your app.
Ionic is quite easy to start with if you know Angular 2. You won’t need a lot of special knowledge, most of struggling would be about working with mobile hard and software. But that would be that kind of struggling which makes sense only in case you are doing something really simple or a prototype.
Ionic’s tempting with one code base for all mobile platforms. Well, universality is an enemy of quality. You will finally found out that:
- Some functionality is still device-specific
- Some functionality is just missing (no cordova plugin)
- Some functionaliy is specific to device native API version
- Ionic app UI won’t work as smoothly on device as native one does
So when your app is simple, all these things you can ignore. For the prototype it’s still may be good choice – one codebase for different platforms might be a strong pro. But for the serious application you will just have to struggle and suffer a lot. And if struggle and suffer anyway, why don’t go with native app?