I’ve been developing with Ionic Framework since it was beta at the beginning of 2014. Since then I’ve published two applications and done other things that I cannot talk about due to non-disclosure agreements that I’ve signed over the years.
I wanted to take the time to do something that I should have done after my first year, but never got around to. I want to share my experience with using Ionic Framework so anyone who reads this can get a rough idea about what they’re getting themselves into with the platform.
I’m going to break this article in the following parts:
I want to keep this article honest without any fanboy-ism involved. It should be noted that as of now I’m mostly talking about Ionic Framework 1.0. At the time of writing this, Ionic Framework 2.0 is in alpha development.
Before coming across Ionic Framework I was developing native Android applications using Java and the Android SDK. I didn’t know Objective-C or Swift and my C# knowledge wasn’t very strong so I wasn’t developing for mobile platforms beyond Android.
I had released several native Android applications, a few of which are still in Google Play and the Amazon App Store. Let’s take SQLTool Pro Database Editor for example. This is an Android application that works very well from a user perspective, but from a coding perspective it is incredibly complex. It is complex because of all the threading and device fragmentation that has to happen when developing for Android.
Imagine if I had to make this application for native iOS as well? More importantly, imagine if I had to support this application for both Android and iOS. Supporting both platforms as a solo developer is tough.
Where am I going with this? Let’s talk about Ionic Framework.
Two applications that I created using Ionic Framework are OTP Safe and Snapper for Digital Ocean. From a user experience perspective, I’d like to think these two apps are doing very well.
What is important here is that I was able to develop an iOS and Android version of both of these apps in a fraction of the time it took me to develop SQLTool Pro. I didn’t have to worry about threading, or device fragmentation, or any of the nasty stuff that comes with developing native applications. In fact, OTP Safe and Snapper probably look a whole lot sexier than my SQLTool Pro application because the designers at Ionic did one heck of a job with theming and styles.
Ionic Framework has slick styles and easy to use APIs that make it a pleasure to work with. The styling gives it an edge over similar frameworks that operate on Apache Cordova.
There are a few places that fall short in Ionic Framework, but they aren’t necessarily a fault of the framework, but more of Apache Cordova and Android in general.
My next complaint isn’t exactly with the base framework, but more with the extras that are available for it. Ionic Framework advertises an AngularJS wrapper called ngCordova, which makes Apache Cordova plugins easier to use. The problem is that this wrapper is chaos in the sense of its wildly unnecessary complexity, and its lack of support from the actual Ionic Framework company. Plugin support should be brought higher on the priority level.
This leads me to my final opinion of what can be improved. There are a ton of services being pushed out by the company which seem to be weekly. The problem is that all these services never seem to leave alpha or beta state, and much of which even die off. I feel more energy should be put into solidifying the existing services before pumping out new ones.
Regardless of the flaws I would still recommend Ionic Framework to anyone looking to develop mobile web applications. I found it very easy to use in comparison to native and the applications I developed using it are thriving in the app store.
Being able to prototype an application in less than half the time of a native application is a huge benefit. Coming from both the native and mobile web world, I speak on experience.
I’ve come from a background in developing native Android applications, but never native iOS applications because I never took the time to learn Objective-C. I know first hand that native applications can take a ton of time to develop because of all the fragmentation in devices and screen resolutions.
This is one of the mobile frameworks I would recommend to anyone.