Our website is made possible by displaying online advertisements to our visitors. Please consider supporting us by disabling your ad blocker.

My Experience Developing with Ionic Framework

TwitterFacebookRedditLinkedInHacker News

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:

  1. What was my development background before Ionic Framework?
  2. What does Ionic Framework do well?
  3. What can be improved with Ionic Framework?
  4. What is my overall impression of the framework?

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.

What Was My Development Background Before Ionic Framework?

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.

What Does Ionic Framework Do Well?

When working with Ionic Framework you can make use of the responsive mobile-first practices that you’d typically see with web development. This is because you’re developing your mobile applications using HTML, CSS, and JavaScript. To be specific, you’re using AngularJS.

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.

What Can Be Improved With Ionic Framework?

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 number one complaint has to do with performance in Android. Older devices that don’t use Chromium as their web browser suffer from poor HTML and JavaScript processing performance. This isn’t an issue for iOS and modern devices that use Android 4.4.4 or higher, but the problem is that a large percentage of the world aren’t using these modern devices. The solution to this is to bundle Crosswalk into your application, but these adds a lot of girth to the downloadable APK. It can boost your application from 6MB to 40MB in size.

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.

What Is My Overall Impression Of The Framework?

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.

Conclusion

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 where I think Ionic Framework and mobile web applications succeed. Ionic Framework has a beautiful front end and allows you to use one of the greatest JavaScript frameworks around, AngularJS. It has a very large developer community and includes the even larger Apache Cordova developer community.

This is one of the mobile frameworks I would recommend to anyone.

Nic Raboy

Nic Raboy

Nic Raboy is an advocate of modern web and mobile development technologies. He has experience in C#, JavaScript, Golang and a variety of frameworks such as Angular, NativeScript, and Unity. Nic writes about his development experiences related to making web and mobile development easier to understand.