Wednesday, October 26, 2011

Building mobile apps - build once, run (almost) anywhere

Blog Post
For those of you who are interested in mobile application development, I would highly encourage taking a look at Sencha. I spent the last two days at their SenchaCon annual developer’s conference and cannot resist being completely impressed by their products as well as people.
During the conference they introduced several updates to their current frameworks including Ext JS, Sencha Touch, and Designer. They also introduced a new cloud offering called Sencha.IO. However, while Ext JS is a great framework and Sencha.IO is a very interesting new cloud offering, the real story here is Sencha Touch.

As everyone knows, mobile development market is fairly defragmented. To build mobile applications for leading platforms such as iOS, Android, and BlackBerry, developers need to build the same application in completely different frameworks and languages. To support all three, developers must literally write the application three times. What a waste of time. To solve this issue, one can use a third party framework. Several months ago I evaluated three leading JavaScript frameworks including Appcelerator , JQuery Mobile  and Sencha Touch . To create complex mobile apps quickly and with the least amount of pain, Sencha Touch was hands down a winner. While the other two have a potential, Appcelerator was simply too buggy and JQuery Mobile while easy to use resulted in UI differences between platforms. What looked great on an iPhone was terrible on Android when built by jQuery. Sencha Touch does not suffer from these limitations. While its learning curve is much steeper than jQuery, I feel that benefits outweigh the downsides.

As a result, Ignite standardized on Sencha Touch and we are building mobile applications in that framework now. Our own findings as well discussions I had with people around SenchaCon reveal that Sencha Touch really is a great framework. As the same time, when building large mobile applications not everything can be solved with it.  For instance, because the framework leverages Webkit browser on the device, developers may need to use something like PhoneGap to access native APIs such as camera, contacts, geolocation and others. Also, some of the developers talked about leveraging PhoneGap to improve speed of the application and moved some of the business logic to it. One other exciting product in their mobile ecosystem is the Sencha Designer. In 2.0 developers be able to build mobile apps using their UI builder. What takes us hours now can take us minutes. The resulting code will be MVC. Something we are very excited about, of course. To be honest it’s not all roses even with Sencha. Multi-platform mobile development is tough and many developers have to deal with workarounds just to support multiple devices within the same app. However, I think Sencha Touch is clearly a leader in this space.