GluJS

A Specification-based, Model-View-ViewModel (MVVM) and Behavior-Driven Development (BDD) JavaScript Framework for Ext JS and Touch based Applications

Read the GluJS GuideDownload GluJS (v1.2)
For Sencha Ext JS and Touch
View GluJS Project on GitHub

Spec

Given 'the Hello World application on launch', -> vm = null
  Meaning -> vm = glu.model 'helloworld.main'
  ShouldHave 'set the message to "Hello World!"', -> expect(vm.message).toBe 'Hello World!'
  When 'the user toggles their status', ->
    Meaning -> vm.set 'arriving', false
    ShouldHave 'set the message to "Goodbye World!"', -> expect(vm.message).toBe 'Goodbye World!'

View Model

View (Ext JS)

glu.defModel('helloworld.main',{
    arriving : true,
    message$: function() {
        return this.arriving ?
	    "Hello World!" : "Goodbye World!"
    }
});
glu.defView('helloworld.main',{
    title: '@{message}',
    tbar : [{
        text : '~~arrivalStatus~~',
        pressed : '@{arriving}'
    }]
});

We can help accelerate your Sencha-based projects. Contact our services team to discuss GluJS/ExtJS consulting and training.


Enhanced MVVM Architecture

GluJS brings the Model-View-ViewModel architectural pattern up to date for rich, reactive HTML5/JavaScript web apps. We call it SVVM, for Spec-View-ViewModel.

Built-in Test Framework

Test first, last and always. GlusJS incorporates the powerful Jasmine behavior-driven development (BDD) test framework, coupled to our own spec definition layer.

Ajax Simulator

Back-end services can be defined and simulated within the GluJS client framework, enabling end-to-end testing and demoing of apps with no server infrastructure required.

Declarative Bindings

Concise, two-way bindings of properties, commands and containers (item groups) between views and view models, with a powerful 'binding by convention' core pattern.

Minimalist Code

GluJS's declarative bindings and automatic data transformations enable large-scale apps to be implemented using very efficient and elegant DRY principles.

UI Composition Patterns

Create view- or model-first separated presentation patterns that normalize and accelerate application development across your entire organization.

Ext JS Support

GluJS comes with view adapters for Sencha Ext JS 3.x and 4.x, and a pre-release adapter for Touch. Adapters for other HTML5/JavaScript widget libraries coming soon!

Built-in Localization

Usually an expensive afterthought for PMs and developers, GluJS will automatically update text in the UI for the current locale if you provide the translations in a local file.

Permissive Open Source

GluJS is published on GitHub and is licensed under the MIT License. The GluJS code may be modified and included in commercial apps without restrictions.