Proper unit-testing of Angular JS 1.X applications with (ES6) modules

Testing of Angular JS application used to be quite painful especially when using “official” solutions like Karma or Protractor.
ES6 (aka ES2015, aka new Javascript release) changed this by introducing standardized module syntax. This enables us to do real unit testing of Angular JS constructs like controllers, factories or services in a very simple and fast fashion.

Continue Reading

Keyboard accessibility in web applications

Modern Javascript frameworks allow us to achieve smooth user experience in our web applications. In fact, “single page applications” (SPA) have increased in the marketplace because of them. Current developers (of course, me too) can’t live without using AngularJS, React, Ember, jQuery… and, of course, without Grunt, Node, Bower, Gulp… It is cool and nice. All of us working with the same map of technologies and trying to get the same goal: the best user experience. But, are we really achieving this goal? or are we forgetting about something/someone?

Continue Reading

Introduction to React and Flux

I bet you have heard about React, but what about Flux?

Single page applications (SPA) have became the standard for building of modern web applications. The main reason for this is the smooth user experience, which is achieved by employing Javascript frameworks and libraries when communicating with the backend server. Frameworks and libraries such as Angular, Ember, jQuery, Durandal, Backbone, React, Meteor, Grunt, Bower, NPM, Gulp, Broccoli, Karma, Jasmine, Mocha … WAIT WHAT? There are too many technologies to navigate effectively and frameworks are becoming obsolete even before becoming the standard (I am looking at you Angular 1.3, hmm 1.4 but still…). Angular is nice and productive to work with, but recently announced Angular 2.0 is so different from Angular 1.3 (1.4) that it made many developers consider other possibilities. There are popular jokes that the the only thing Angular 2.0 shares with its former incarnation is the name 🙂

Continue Reading