When we started Hybrid application development a few years back, our choices were frameworks like Sencha Touch and jQuery mobile which had their origin in web and were retrofitted for mobile. This never really worked well and gave Hybrid frameworks a bad reputation.
As a dev shop focusing a lot on Hybrid mobile application development, we are glad to see the momentum in mobile UI frameworks in the last year that are designed from scratch for mobile and applies the lessons learned from first generation frameworks. We wanted to standardize on a free, open source framework for developing Hybrid mobile apps and compared Ionic, Kendo UI, Famo.us, FrameWork7, OnSen UI and many more and ended up choosing Ionic. Here is why.
We evaluated on the following criteria.
- Native Focus
- Component library
- Angular integration (preferable)
- Licensing (MIT, Apache or equivalent)
- Both Developer and Designer should like
We wanted a mobile framework which focuses only on native apps with HTML5. Not general purposeframeworks that target both web and mobile. Our experience is with these is that the mobile side of it gets saddled with a lot of web stuff and doesn’t work well. Ionic is built from scratch focusing only on native which is great.
We wanted a UI which will work reasonably well for both iOS and Android. Ionic has a nice, simplistic flat UI which our designers like. No Hybrid UI is going to look completely native, but Ionic apps don’t jump out or appear jarring on either platform.
We also found some of our favorite features for UX like pull to refresh are easy to add (ion-refresher) via directives, scrollable panes and the controversial(!) infinite scroll. Basically, all the “typical” UX things you may need in your app are packaged into the framework and are pretty easy to use.
This was the very important criteria and we wanted a library that is as close to native in perceived performance as possible. Ionic excels here. Right from their UI design they have learned from mistakes made by older frameworks like JQuery and avoided performance hogs like gradients, shadows etc. It does a lot of other things right like using hardware-based accelerators.
It has a decent component library with 36 widgets. But it is not as comprehensive as those supported by Kendo UI or JQuery mobile. This is to be expected given it is relatively new. But what is available looks good and works fairly well.
We wanted good application framework support, preferably using Angular as our team has a lot of expertise in it. Ionic comes with out of box integration which is a big plus for us.
Ionic is MIT licensed which works great. It’s free and open source which is especially a plus for early stage startups. For paid Kendo UI is a strong contender.
We have made technology selections purely based on technical merit in the past and live to regret it! So these days we pay as much attention to momentum, ecosystem, and longevity. Ionic checks out here. Its a well funded profitable startup that has raised $1 million seed funding from Arthur Ventures, not just an open source project. It’s a top 250 project in GitHub and last when I checked it had 1937 forks and 802 watches.
Overall both developers and designers liked Ionic and we started building and so far happy with the choice.
- Decent integrated development environment and easy to get a developer started
- Creator looks promising, alas we have to wait for it. Meanwhile, we are using Monaca. If you like Monaca, get started here.
Some of the not so good things:
- Documentation is still weak.
- Ways to go before catching component libraries of frameworks like Kendo UI.
- A bit buggy though it is fast improving.