Creating modern mobile and web applications is a complex process. Gone are the days when a web app can be created by chaining together multiple HTML pages into a seemingly coherence workflow. Nowadays application owners want their application to perform all and everything on a single page itself. This means lesser work for designers, but more headache for developers.
The process of web app development starts with the idea of how the app will look on screen. So far so good. Next, these images are HTMLised by a frontend designer which is then converted by the developer into a fully working webs development page. But hey! Here is the catch. In all my experience as a designer-cum-developer all these years, I have never seen a situation where the final look and feel remains the same after the developer comes up with their output. In almost every case the designers and developers have to get together in the end to work on ‘patches’ so as to get as close to the original look as possible. And here we are talking about simple multiple page web apps. When it comes to single page web apps, the scene usually gets way more uglier.
Now designers can code the main part of the app feeling secure that whatever they build will not be messed up in the development process. Did this eliminate entirely the need for designers and developers to sit together at the end of the app development phase to give the right finishing touches? I might refrain from declaring this on record! However the efforts of this phase have become much less stressful and much less time consuming.
Time to check out these magic frameworks:
Complete JS Frameworks
Lagging behind slightly in the popularity department when compared with AngularJS, EmberJS is by no means out of the race. EmberJS is the framework for those who focus on conventions rather than configurations. EmberJS has a very robust routing framework and thus is a good candidate to go with when you have complex nested routes and templates within a page.
CanJS is a relatively new framework so it lacks in terms of popularity. But we were greatly impressed by its ease-of-use and flexibility in our projects so I thought its prudent to include it in the list. CanJS also ranks higher than the other three in terms of performance, especially when you have to render lots of view binding. But since the framework is not as popular, you will find a smaller community support and fewer learning material related to the JS framework. CanJS needs Zepto libraries to work properly.
KnockoutJS is a very popular toolkit among JS web app designers. It’s very lightweight, has every basic view rendering feature an app would need and it’s a perfect tool for those app projects for which you may have to develop your own framework. In fact there are a lot of complete paid frameworks out in the market that are built using KnockoutJS and BackBoneJS. KnockoutJS is expert in data-bindings. It is easy to setup and easy to work upon. However KnockoutJS has no built-in features to convert plain objects into nested observable, severely limiting your ability to structure your app.
BackboneJS is another popular partial framework which developers use to build their own frameworks. Aura, Chaplin, Backbone UI, Geppetto, LayoutManager, Thorax, Marionette, Vertebrae etc are all built using BackboneJS. BackboneJS is awesome if you want to define your templating or use jQuery-like event binding. However the framework Tool-kit is only for advanced developers and it has a steep learning curve. BackBoneJS is good at handling requests, module loading and request routing.
AngularJS rules the popularity contest everywhere. It is also the only stand alone framework that does not need help of any other library to work, and it is also the largest frontend JS framework out there. Ember and CanJS need support from additional libraries but are great in their own ways. BackboneJS and KnockoutJS are awesome for small app development projects or for those large app development projects in which you may have to build your own framework. I would like to point out first that in no way this list was made to start a popularity contest among framework users and fans. I have shared my opinion as I see it today and would love to know what you think about these frameworks.