The last months I was developing a litte Angular application which uses Ruby on Rails (RoR) on the back end. For this project, RoR is basically used as a REST API, receiving and sending JSON data. In the front end, Angular is used and it leverages Angular Material as a support library.

It was my first time working with a project in RoR, and so far, I still don't like it. In order to have a better understading of the back end, I also started a couple of personal projects using RoR as a development framework. There were some tasks that RoR helped me to implement really quick, however, when I needed more control in my controller or action, I had to remove a lot of functionality. I prefer to add features instead of remove them.

The resulting Angular solution happened to be interesting. It was my first time using the scope inheritance to abstract some functions and data. The dark side was the communication with the RoR API. The endpoints are really punctual but they follow the JSON API specification. They are easy to read, but I had a hard time composing several calls in my controllers. My Promise-bender abilities shined here.

Angular Material seems to be a really good library for Angular development. It offers many controls and layouts, and in consequence it can bootstrap usable web apps quickly. However, it has a steep learning curve (lots and lots of new directives), and because of the tight deadline I ended up creating my own controls. The project was planned to go for one month working half-half-time (8 hours per week), and it went an additional month. Yet, I want to learn some more things about Angular Material.

I enjoyed learning a little about RoR and I think it is a suitable framework for some projects, especially CRUD web sites. But in this case I would have used Node.js.