Saturday, October 15, 2011

First Impressions: Sencha Touch is faster than jQuery Mobile

Sencha Touch I have found to be a pretty sweet cross-browser HTML5 solution for building web apps. I was  looking for a good library to go along with PhoneGap.

At first I looked at jQuery Mobile 1.0rc1, but after checking out the examples on my phone, decided it's broken on Android. Specifically I have a Motorola Droid 1 running stock Android 2.2.2, and the examples ran quite choppily, with CSS page transition effects pretty much completely busted--I guess because they are relying on hardware accelerated CSS on newer phone models.

But even navigating the jQuery Mobile documentation site, which is naturally written with jQuery Mobile, showed some bugginess where the loading dialog would show off-center, the back button would flash the wrong page before finalizing the transition (a side effect of the broken CSS transitions, I guess), and just overall slowness. They even made some basic performance mistakes like binding to the "click" event instead of the "touchstart" event, adding some slowness--see this informative post from March 2011.

The Sencha Touch demos proved to be quite a lot snappier and look quite pretty. The button clicks are very responsive. I was impressed with the speed of the drag and drop, although there was a tiny bit of bugginess where the color might change differently depending if I drag quickly or slowly. In any case I'm pretty convinced  that Sencha Touch meets my needs for many use cases for current generation mobile devices. jQuery Mobile might serve me better in the future, when they speed up the library's performance or if I ever decide to cater to a small set of fast devices.

For some more opinions, check out this stackoverflow page: http://stackoverflow.com/questions/4066167/sencha-touch-or-jquery-mobile.

Sunday, October 9, 2011

Android Market: Application Licensing vs In-app Billing

Licensing is the new way of doing Android Market copy protection. It requires the device to have the Android Market app, and the app must be associated to a Google account. The app that is licensed must be a paid app; free applications are considered licensed to all users. A down side is that many devices that are not licensed to use the official Google android apps won't be compatible with the licensing code. http://developer.android.com/guide/publishing/licensing.html

In-app purchases are also tied to Android Market. Here you are still locked down to the official Android Market app, but your application does not need to be a paid one, according to http://developer.android.com/guide/market/billing/billing_overview.html#billing-limitations. This is cool in that you can release an application for free, then charge for extra content.