Modern Web Applications Development – MEAN and AngularJS
When we have to develop a web application we need to analyze the technology that we will use and we have to be sure that this technology will allow us to develop the project successfully. To develop the project successfully the technology should provide us some features, such as productivity, functionality, and scalability, among others.
In this article I want to analyze what I think that is a very interesting stack for modern web application development and wherein AngularJS is the main player of any of the variants of the stack that I analyze.
Web Applications Desktop
As I mentioned previously, I think that nowadays AngularJS is one of the most interesting frameworks for developing the front-end of our web applications. Although AngularJS allows us to develop different types of applications, I think it is particularly interesting for the development of applications that need to implement CRUD actions (like this software at https://www.makewebvideo.com/en/make/movie-trailer-video), where access to databases is essential. Usually enterprise applications need to access data stored in our database, so I think that AngularJS is a framework to keep in mind when developing enterprise applications.
For the front-end there is another interesting framework that we must take into account, Ionic, which allows us developing hybrid mobile applications. Personally, I consider that one of the most important features of Ionic is that it is based on AngularJS, so we will be able to reuse most of our code developed for our web desktop application, achieving significant savings in development cost.
Furthermore, Ionic is based in PhoneGap, so we will be able to distribute our mobile application easily for the different mobile platforms available in the market.
We have some interesting options for developing our back-end, which we can group mainly in two different groups: cloud back-end and on-premises back-end.
There are some platforms that allow us define easily our data model in their servers and access them through an specific SDK or through an API REST.
Firebase also includes an specific SDK for AngularJS, and natively provide us developing realtime applications. So, we can define some events and when someone add, update or remove data from or to our collections then Firebase will notify in realtime to our clients.
If we finally decide to have our back-end on the cloud, when we develop our projects we are going to mainly focus on developing the front-end, because for the back-end we will have only to define our data model and we won’t have to develop anything.
If we decide to have our back-end on our own servers then we have some frameworks that will help us developing our own back-end.
There are some frameworks that I would like to highlight although, at the end, is the development team who will choose one or other depending on their preferences: SailsJS, Synth, LoopBack, Restify, Deployd and MeanJS. Another choice is develop our own back-end manually, with NodeJS + Express, for example, or with another platform or programming language.
Most of these frameworks allow us define our API easily and very quickly so, once we have developed our API, we will have to focus on developing our front-end.
Developing web applications and mobile applications is quite complex, however, if we choose proper tools we could reduce the complexity and we could improve our productivity.
With this article I have tried to analyze an stack, with some variants, that I think is very interesting and that help us developing our web and mobile applications.
Nowadays I think that one of the most interesting frameworks for developing the front-end is Angularjs, and Ionic for developing the mobile app. For developing the back-end I would choose Firebase if it isn’t mandatory to store our data in our own servers, and I would choose SailsJS, LoopBack or MeanJS if we have to store our data in our servers.
In the following articles I will explain how to develop web and mobile apps with the tools analyzed in this article.