Note: This post applies to AngularJS. The 1.x version of Angular. AngularJS has been end of life at of 12/31/2021.

At the HolidayJs event I won a book and I picked a copy of Angular In Action by Lukas Ruebbelke. I had already been using Angular for a few projects and wasn’t expecting to get much out of the book. Honestly I got it to use as more of a give away at one of my talks but figured I would at least glance through a few chapters of it first. Needless to say I ended up reading the whole book and plan to keep it.

This book is one of the best introductions to Angular that I have read. Lukas does a fantastic jobs of explaining how it all works with lots of good code examples in a way that is very easy to understand. The book walks you through building a Trello clone with a pre-built backend so that you can stay focused on Angular and not worry about the data storage. After reading this book and going through the code examples you will be well on your way to being able to create your own Angular application.

The book starts off explaining how all of the parts of Angular play together: configurations, routes, views, directives, controllers, services, and $scope. It is one of the best explanation that I had read or seen. Before this book I had understood how it played together enough to be able to code with it but couldn’t explain it well to others. Not anymore. If nothing else the opening chapter was more than worth it.

Before diving into the details of each component, Lukas tasks about how to structure your Angular applications. He covers the basics and some common best practices. For detailed style guides he refers you to John Papa and Todd Moto’s style guides. I very much appreciate that he didn’t rehash their style guides.

Next the book dives into the details of each of the components. He starts with views and controllers, then discusses services and finishes off with directives. He spends a while chapter on each component and the explanation of each is extremely easy to understand. He walks through each of the sections as he is building the sample app which really help to reinforce the concepts.

Then we take a trip into polishing the UI with animations. At first I was thinking this is a throw away chapter but it turned out to be a really fun chapter. Lukas did a good job of explaining how to quickly and easily create both CSS and Javascript animations. All of the code was very easy to understand and could easily be applied to any application. I may just have to start thinking about how to use animation in my application.

After animations, he jumps into how to navigate to the different views using routing with ngRoute. Like the rest of the book, it was a well explained chapter and a good overview for how routing actually works. I do wish that he had used UI router instead of ng-route since many of the projects that I have been working are using UI router but that is just me being greedy. ngRoute is more than enough for the coding examples. The loading spinner control was cool to see since this is something that every application should have to indicate something is happening to users.

Next up is a quick trip into forms and forms validation. This chapter cover the basics of form validation for textboxes using required and minimum length. He covered a nice bit of the basic form validation code that you would need to know. I do wish that he would have cover more of the Html controls such as drop downs, multiple select, checkboxes, etc.

One more cool thing that Lukas does is include a testing with Karma section in each of the chapters. Coming from an Agile background where I have done a good amount of automated unit tests for my projects, it was nice to see Lukas cover this topic. Lukas covers just enough to get you started on automated testing and shows you how easy it is to get started with it.

Overall, I would give this book 5 out of 5 stars. If you are already an Angular developer or just getting into Angular this is a must have book. Wish I would have had it a long time ago. Great job Lukas.

Link to book