As the developers of the framework say, Angular is an application design framework and development platform for creating efficient and sophisticated single-page apps. Working with it for some time, we have discovered a number of its advantages and disadvantages which we listed below.
- Lots of different features — out of the box Angular provides a really impressive number of ready-made solutions that make development much easier.
- A cli system — is certainly not Angular’s killer feature, but it’s much easier to start learning a new solution using a console client, rather than spending hours choosing and finding reasons why something isn’t working.
- Typescript — the framework itself is written in this language, which allows to use es6 easily without unnecessary fuss with settings. You just write the code, and the compiler simply converts it to es5.
- Component approach — “divide and rule”, a favorite quote when the question goes beyond this item.
- Modules — simplify collaboration with the code base. You simply assemble all the pieces of your business component into a module, which you can then add to the code if you want to enable another developer to use it.
- Framework development — the framework is developed and maintained by Google, which in turn releases new “revisions” of the framework with additions, fixes and updates.
- Two-way data binding — provides excellent application behavior that minimizes the risk of possible errors.
- Working with Google Material — a set of styles and ready-to-use interface components with many methods and properties.
- High entry threshold — Angular is a very complex framework. On the one hand, using cli, you can easily start writing code on it, but on the other hand, without studying the documentation, you can write very suboptimal code or your code will not work at all.
- Not the best documentation — The documentation is there, but its quality leaves much to be desired. Often opening the documentation, you can see just the name of the methods of the class, without any description of what they do and how. Even if the description is present, it is not always possible to understand how to use this or that method without a living example.
- Large amount of receiving code — if you use Angular out of the box, we get huge modules at the output. But if you dig a little into the documentation, you can find a number of solutions that will significantly reduce the size of the output code.
- Version migration issues — can occur when you upgrade from an old version to a new one.
To sum up, Angular has become a truly corporate framework on which you can not be afraid to build large programs. This is mainly due to the understanding of the experience with the first version of AngularJS, the chain of correct decisions, such as the choice of RxJs and Typescript, as well as the integrity of the decision. What is the most important for us when choosing Angular, is the speed of our development and how quickly our developers will be able to make changes to the code and move the product forward.