Modern MVC framework for object oriented jQuery and Backbone enabled web app development
MIT License
Modern MVC framework for object oriented jQuery and Backbone enabled web app development
Flyleaf is a featherlite object oriented approach to writing browser and device agnostic web applications. It introduces Sencha-like architecture to jQuery and Backbone.
Flyleaf brings these hard to resist features on the table:
Flyleaf depends on these awesome products
Both pre-baked and standalone builds of Flyleaf are available for your convenience
While flyleaf can function solely with Backbone and jQuery, additional libraries are introduced to provide with often needed features
Where does all the speed come from? First of all, Flyleaf utilizes a modern object inheritance system, supported on most modern browsers. Many object oriented frameworks are still stuck with prototypal inheritance. The latter is slower on many levels.
Also, with pseudo threading, Flyleaf was able to make the browser much more responsive while expensive computations and communications (such as template compilation or DOM element rendering) are batched and executed as soon as the browser becomes available again. E.g. when the only real thread is freed up. This ensures lightning fast bootstrap and DOM manipulations.
Most common operations were heavily benchmarked before being introduced. For example, grep() vs each() vs map() vs for loop are evaluated and used in accordance to the best performance benefit without compromising flexibility. As another example, we reuse arrays when possible instead of reinitializing new memory blocks. You see how far we're going to squeeze out some cycles from clients' browsers?
There are numerous other JavaScript development patterns used in this project that are known to preserve memory, minimize garbage collection, lessen object iteration, improve DOM speed, and so on.
If you feel you have insights that can help this project become better, please contribute :)
Which templating engines are supported? Virtually any that support the compilation phase, such as Handlebars, Mustache, _.template. Support for these two is already baked in. An abstract class is provided to help provide support to others.
Why Sencha-like? Ext JS and Sencha Touch are fabulous frameorks for developing desktop and mobile web applications, respectfully. It's hard to single anything out, but the development workflow is certainly amongst the stellar features for both frameworks. Experience generated with the two drove the idea behind Flyleaf.
If you are a jQuery developer who ever wanted to develop a web app, you must have felt the need for a clean architecture to follow. Ever desired for modular development, object oriented approach, powerful class system? Here it is :)
What makes it Sencha-like? These features are influenced by Ext and Sencha Touch but the end result is not really the same. Many have been improved for easier and faster developement.
cloneNode(true)
FTWWhat's missing from Ext?
OK, I'm an Ext developer, what's been improved? For example:
Fly.init('Toolbar')
- everything else is magic. Looks up in the Application namespace and the framework namespaceExt JS and Sencha are both fantastic. So are jQuery and Backbone. It's not that easy to find space for improvements in either, wouldn't you agree? If you've got ideas, good or bad, pass them on!
Beta. You can help! Play with it, test, develop, contribute. Share.
Do-whatever-the heck-you-want-with Software License!
(Actually MIT Licensed)