Tag: Blog


Senchacon 2013: Clean and Maintainable Ext JS

Clean and Maintainable Ext JS: Tools and Patterns for Greater Code Clarity This is the talk I gave at Senchacon 2013 based on my experiences of working on large Ext.js and Sencha Touch based projects in Morgan Stanley and Causata. Slides Audio Video no longer available


Simplifying Grunt Jasmine tests for Ext.js

Are you wanting to unit test you Ext.js code but not sure where to start? Do you feel frustrated that everytime you get a bug raised you don’t know how to apply TDD techniques to your JavaScript because it’s just “not the same kind of code” as your Java, Ruby, .Net? Since I’ve worked with …


Using grunt with Ext.js 4.x projects

17 March 2013 – Updated to included the new simpler syntax of 0.6.0 So I stumbled across a thread last week on the Sencha forums marked under their “Trending Threads”. It’s title: Sencha Cmd Needs Some F*****G Coffee!!! It’s an eye catching title! Specifically there was one post there which said: I really would love …


Using travis-ci with grunt 0.4.x

Update: 26/03/2013 Tim in the comments points out that if you add grunt-cli to your dev-dependencies in your package.json that will also achieve the same solution. I’d recommend his solution here instead of the below. I thought I’d post a quick set of tips on how to setup http://travis-ci.org on a grunt plugin project as …


Fed up Sencha Cmd? Want to use Grunt with Ext.js and Sencha Touch?

Are you fed up with figuring out all the bazillion commands in Sencha CMD? Do you just want to concat and minify your app without figuring out what the heck Sencha Cmd is asking you to do? Imagine if you could just use a tool like grunt, have it figure out the app dependencies correctly …


Ext.js – Cancel a load on an Ext.data.Store

Have you ever wanted to cancel a load you initiated on an Ext.js Store? Unfortunately Ext.js doesn’t provide this functionality out of the box, but the below patches provide a way of doing this. By default the Ext.data.Store.load() call would return itself, but in the below code I changed it to return an Ext.data.Operation which …


Simplifying view code in large Ext.js and Sencha apps

Do you ever feel like your view code in Ext.js is getting out of control? Do you end up copying and pasting button configs across multiple views? Imagine if you could control all your component config in fewer places, make it easier to share config, test components and update them. I’d like to introduce the …


Promises in Ext.js and Sencha Touch

Do you feel like passing callbacks and setting scopes everywhere makes your code messy and difficult to follow? Promises can make your code more readable, easier to debug and understand, and also a easier to test. What is a promise though? Simple promises The idea of a promise is that you request someone to do …