The Future of Bancha

by Roland Schütz (comments: 0)

Ever since we first unveiled the original Bancha, we’ve been raising expectations of what Bancha can do for app developers. Almost two years ago, Bancha pioneered a whole new way of integrating mobile and web apps with your backend. Since then, Sencha Touch has become one the most important frameworks for building cross-browser mobile applications and Bancha found a wide usage base. 

We are really happy to announce here that we are currently working on a major refactoring and soon will be able to ship Bancha 2.0. A preview release will be available in the in the next two weeks.

Model Loading

In Bancha 1.x we had multiple ways of retrieving Bancha models, you could use Bancha.getModel(modelName), Bancha.preloadModelMetaData(modelName) and Bancha.onModelReady(modelName, callback). Besides you had to manually include the Remote API with the appropriate models.

While this gave developers a lot of choices it was also sometimes confusing. It wasn't clear which approach to take and how to make sure the model definitions are already loaded. In Bancha 2.0 we follow the new Sencha conventions and provide one unified way of retrieving models.

Use any of the by ExtJS/Sencha Touch provided ways to require a file and Bancha will handle the workload. Bancha will also have only a single include which handles the whole bootstrap process of Bancha. You will simply be able to load Bancha by Ext.syncRequire('Bancha.Initializer');

All models are loaded through normal dependency resolution. You will be able to build your stores by defining:

Ext.define('MyApp.store.Users', {
    extend: 'Ext.data.Store',
    requires: [
        'Bancha.model.Account'
    ],
    config: {
        model: 'Bancha.model.User',
        storeId: 'Users',
        remoteSort:true,
        remoteFilter:true
    }
});

In development Bancha will then load model definitions as needed (same concept as Sencha's class loading in development). For your production version Bancha can simply be packaged together with your app using Sencha Cmd.

Architecture

For Bancha 2 we will refactor the complete javascript code to follow all ExtJS and Sencha Touch conventions, while still supporting both frameworks with the same code base. This might seem like a little step at first, but it will give us the flexibility and solid foundation to go ahead in building the most solid backend for Sencha applications.

Integration with Sencha Cmd and Sencha Architect

Bancha is not just a product to use alone, we are aware of the whole ecosystem and see the big steps Sencha is doing here. To be able to use all of Sencha's features we will support an integration into Sencha Architect for building apps visually. For packaging your apps we will be fully compatible with Sencha Cmd.

Compatibility

Bancha 2.0 will be fully downwards compatible and will still support all old ways of retrieving models. Bancha.getModel(modelName) will synchronously load model definitions if they are not yet loaded, since that has lead to some confusions in the past.

Release Schedule

Finally, we believe that you will love Bancha 2. While it brings all the new features, enhanced functionality and ease of development, we recognize that documentation rework is now overdue. The new documentation is continuously growing with Bancha 2 and we are sure you will be fascinated by the work which we have done in recent months.

Please stay in the loop by signing up for our newsletter and expect some insights into Bancha 2 in the following week.

Subscribe

Sign up for exclusive Bancha news!

Go back

Comments

Add a comment

Subscribe

Sign up for exclusive Bancha news!