We are in the process of building a new mobile app. We are a bunch of pretty talented js devs, so after looking around a bit
jQuery Mobile and
PhoneGap seemed the right path to take for us. We already use a
JavascriptMVC framework for our Webapps, so we wanted to reuse that. JavascriptMVC is very similar to backbone.js, so if you use that you are probably in the same boat as we are.
jQuery Mobile
We spend about one week making the server side json api and the jQM pages. Christophe has
a very nice writeup about how to use jQM with backbone.js, and his hints worked great for us. We tested the app in the browser (ff and Chrome) while building it, and everything looked awesome. Then our test devices got in and we compiled the
HTML/JS app to a hybrid app, installed it on an android 2.x device and to our surprise there where no transitions. Well, jQM is used by a lot of people we thought, so there must be someone out there who fixed this? After looking around a bit we found out that:
-
jQM does not support transitions on 2.x devices and they basically gave up on them.
- a very cool guy implemented a
jQM wrapper for
iscroll4 (a very nice scrolling library), but after testing it we found out that it locked up sometimes on the devices and it was a bit awkward to use (this is my subjective opinion).
So, to the point: jQM in PoheneGap/as a hybrid app does not work on Android 2.x devices. We tested it briefly on a 4.x device as well. It didn’t work there too.
We gave up on jQM. It doesn’t work for us.
Friends don’t let friend use jQM.
Kendo UI Mobile
The json api for our app was done. We just needed a nice frontend for it. And since jQM didn’t work we looked for something else. Back to google we found
Kendo UI Mobile. It looked awesome on the demo page, but has a fee attached to it (not much really: $199). We are ok with that, as long as we get the source with it so we can debug it in case something goes wrong. And that is included in the price (
they say so).
So we tried that out too. We compiled all the examples in PG and tried them out. It worked great on our test devices. All transitions worked, the Widgets looked very nice and reflect the look and feel of the device they are running on.
The only problem we had, and could not fix, was that it interfered with our routing mechanism,
about the same problem this guy had. I think somehow we can workaround this problem, we still have to try a bit harder. What makes me feel a bit bad about Kendo is the fact that not many people seem to use it, and so if we have a problem we may not find a solution to it right away in the forums or on some blog, but we have to dig deep by ourselves and/or contact Kendo technical support. Kendo is at this time an open question.
+ it looks and feels very nice, is fast and reflects the look and feel of the os it runs on
+ easy to use if you use the Kendo way of doing it.
- not many people seem to use it
- difficult to use if you want to just have the nice widgets with your own framework like backbone.js/javascriptMVC
Sencha Touch
In a world of hurt if you want to use it with your own js fw. To slow to startup. We don’t want that. Next.
jqMobi/jqUi
jqUi was a nice surprise. We downloaded the kitchensink app and compiled it with PG. Transitions worked great and the look of the widgets is really nice. But it hasn’t the native look and feel widgets like Kendo, but that’s ok with us: you can give your users a great experience even if the look and feel of the app is different.
So we started to use it with JavascriptMVC and found some problems with the routing,
as others have too, but the solution was there on the forum.
+ it looks and feels very nice, is fast
+ easy to use on it’s own or with your own js fw.
- not many people seem to use it
- does not reflect the look and feel of the os it runs on
Conclusions
If you are an experienced javascript dev and want to go mobile with hybrid apps, you have to make some tradeoffs. What you choose depends on
- how good you want your app to be
- how much $$$/time you want to invest in the app
If you have the time and money to invest, go native for the best user experience.
If you are cheap like us, but want to give your users a good experience anyway, Kendo UI Mobie or jqUi is the best choice at the moment.