In this day and age you don’t have to go far to find a framework that claims to be the BEST and MOST SUPPORTED mobile framework EVER!!! Three years ago, there were only a handful. IUI was there, JQTouch was there, and Sencha Touch was early on the scene. In the last year, there has been dozens of new frameworks on the scene. So, with all those frameworks, how in the world can you choose which one is right for you?
I’m not going to go into depth on every framework that is out there. A simple Google search for “mobile web frameworks” will put lists and lists of frameworks in front of your face, but that still doesn’t get you any closer to deciding which one is right for you.
I’ve used many of the frameworks, and I know the pros and cons of them. I’ve used them on client projects and on personal projects. I’ve used them with heavily customized styles, and I’ve used them with lightly customized styles. I’ve used them on iPhones, Androids, iPads, and Blackberry devices. When I talk about mobile frameworks, I know what I’m talking about. Let’s take a look at some of the most important criteria you should have when choosing a framework.
Support
This is perhaps the most important aspect of any framework. Some frameworks only provide API documentation (like Sencha Touch and JQuery Mobile), which is good if you want complete documentation, but it lacks in telling you how it all fits together. Other frameworks like Wink don’t mind telling you how it all fits together, but you don’t get full documentation if you really want to manipulate the application.
The other aspect of support is how quickly you can find answers to undocumented features. Typically you need to reach out to the community for answers. The more established a framework is (like Sencha Touch and JQTouch) the better and more responsive the community is.
The level of support will determine how quickly you learn to use the framework, and how quickly you can deal with obstacles that you come across. If you are going to create a heavily customized or richly featured application, then you want to find good support with a good community that can help you out when you get into a tough spot.
Win: JQuery Mobile, Sencha Touch
Fail: just about everyone else
Custom Design
This is where a lot of frameworks absolutely FAIL. Most frameworks force you (and you’re users) to conform to their designs, layouts, and animations. For some people, this is fine, but if you want to take Sencha Touch and put a high customized design on it, you’re going to run into performance nightmares when using it on anything but an iOS device or the newest Androids.
One good concept when it comes to building user interfaces is to not re-train a user how to use a well-known interface. For example, the typical interfaces on an iPhone are completely different than the typical interfaces on an Android. Why on Earth would you want force Android users to learn an iPhone interface? They chose an Android for a reason. Are you so arrogant that you alone can determine that an iPhone interface is superior to an Android interface?
In order to provide a highly customized interface, you’re going to want as much control over the looks and interactivity while retaining as much performance as you can. This is where smaller frameworks like XUI come in that merely provide a core set of tools and it’s up to you to make them look how you want.
Win: XUI
Fail: JQuery Mobile, JQTouch, Sencha Touch, many many others, so many others
Performance
Most frameworks show you demos of all their layouts, interfaces, and animations so you can test them out and see how wonderful they are. That’s only half the story though. What you’ll quickly find out is that when you start building your own application and customizing designs or animations, it’s quickly going to bog down. If you want to retain the original performance level, you’re going to have to stick with how they design things. The arrogance!
If you’re fine sticking with their designs, then that’s fine… nothing against that. That’s why I used JQuery Mobile on one of my projects because it was for iOS users only and I wanted something quick, simple, elegant, and not highly customized. It worked perfectly! However I’ve worked on projects that required a lot of styling and design and most frameworks performance quickly fell short especially on non-iOS devices.
Win: XUI
Fail: JQuery Mobile, JQTouch, Sencha Touch, too many to mention
Continued Development
The ideal framework will have an active development cycle. You don’t want to use a framework that was only created by one guy in order to fix a certain problem they had (ie. CiUI). Since technology is moving forward at such a fast pace, you want a framework that’s going to be around for at least a couple of years and that is going to be updated to move with technology.
Win: JQTouch (sorta), JQuery Mobile, Sencha Touch
Fail: CiUI, iUI, too manny to mention
Analysis
We’ve looked at some of the major criteria to take into account when trying to decide which mobile framework you should use. You need to have a framework with good support, good performance, and that will be around for a while. The bit about custom design isn’t for every project. There are only a handful of frameworks that are viable candidates at the current time.
Conclusion
JQuery Mobile, JQTouch, Sencha Touch, iUI, and XUI are the few and the proid. If you stick to that short list, you should be able to find something that suits your needs.