My first impression: well, it is easier than I though to do it without any framework! Don’t expect hundreds of lines of codes, CSS3 and HTML5 offer enough power to do things easier than you expected. But second impression is a bit different as time gets spent on small things, wierd behaviors or things you take for granted when you use frameworks, like managing back button on Android.
But prize for all this is speed! I guess you cannot go faster than fully custom, frameworkless JS. Even my transitions (XUI tween effect) seems faster than Sencha Touch and seem to be usable even on slower devices (but will have to check that). Another huge benefit is knowledge. I suggest everybody to try writing some smaller apps this way, it will be slow but knowledge that you pick up along that way will help you later with frameworks too.
Interesting thing is my last impression, after few weeks of playing with this: I have a feeling I ended up with framework after all, but “my framework”. If you want to program proper way and not just make it work, you’ll find yourself building standards, producing standard functions and using allways the same extensions. Quickly you realize you have actually built a small framework which you plan to reuse instead of going the same way all over again. In my example, I went JQuery Mobile way. I used HTML5 custom attributes “data-*” and wrote some JS to read those and trigger standard behaviors like “go to this page with slide left”, or “go to this page with flip right effect and execute this function before and this one after transition”.
… then I had to deal with fixed position of header and footer for which I used Iscroll lite (https://cubiq.org/iscroll-4)
— then I cried for JQuery’s “delegate” and “live” methods and learned a lot on the subject, again surptised I can extend XUI with similar functionality with 10-20 lines of code! (https://stackoverflow.com/questions/6841580/xui-js-jquery-like-live-event)
Conclusion on mobile HTML5/JS frameworks?
Uh, tough one. I was leaning towards this last way of building, especially if you want to target wide – Androids, old Androids, Iphones, old Iphones. Also I expected this to be temporary, as mobile devices become faster and faster and hardware acceleration is not going to be reserved for iPhone for much longer. Frameworks are the future for sure. But then again, maybe good option is also JQuery Mobile or Sencha Touch without any transitions, gradient backgrounds, CSS3 rounded borders: I’m guessing this would also work quite good on slower devices.
So, I call it a tie for now. Sencha Touch 2 is going out soon anyway, JQuery mobile is stabilysing and I have a feeling this investigation became obsolete before I finished it :) Well, that’s how it is in our business, and to be honest, I like it this way :)
You are here for a reason. Let’s talk.