Software development is an exceptionally complex and sophisticated business. It takes multiple operations and processes from ideation to implementation. Most of the times, these processes, in order to produce a perfect functional software product, require a lot of development effort and time for programmers. Inherent bugs and errors occur and they take additional time to be fixed. For the client, this translates in increased development costs. And, the more complex is the project, the more knowledge, mix of technologies, time and resources it requires.
Clarisoft Technologies has always worked to find the best solutions for their partners and clients in order to reduce development time and inefficiencies.
Based on our clients’ needs and project requirements, one of our most recent goals was to set up a simplified technology stack and specific tools to generate quality code and separate concerns for web and mobile applications alike. This stack is meant to reduce time spent on simple data operations and allow our team to focus most efforts on domain & API design, business logic, and UI/UX.
Let us dive a bit further into technical issues in order to explain.
The major components of the smart technology stack
On the server side & APIs we work with NodeJs, which is a lightweight and efficient platform based on Javascript. NodeJS has an event-driven, non-blocking architecture that is very well suited for scalable and high load Web 2.0 applications. To boost the power of Node, we use Loopback.io framework, which is Open API compliant. LoopBack simplifies and speeds up the development with Node. LoopBack automatically generates a RESTful API that works as a CRUD for HTTP resources (learn more about HTTP Request Methods). LoopBack allows you to access separately the modules that are mapped to a database (e.g. MySQL, MongoDB), what makes the entire project easier to manage. Models are generated automatically through a generator. LoopBack is open source and supported by IBM (who purchased Strong Loop and now integrated Loopback in their Blumix platform). So, it is pretty clear that this framework will not go away anytime soon and will be further developed and updated.
On the client side and software development kits (SDKs), we use Swagger CodeGen to generate SDK for Angular, Java (Android) and Objective-C/Swift (iOS). Swagger CodeGen allows developers to build APIs quicker and easier, simplifying the build process. Also, the SDK for Angular fits seamlessly into the workflow of a front-end developer. It automatically includes all the LoopBack models and methods developers have previously defined, so they don’t have to manually write any static code. This results in a 20-30% reduction in code development time for clients.
Classic development stack model vs. LoopBack method
An easy way to point out the advantages of this technology stack method is to compare it, step-by-step with the classical development model. In the table below, you can see, both at the front-end and the back-end levels how our method saves development time by automatizing some processes that are very time-consuming and robust when using the classic development steps. The code is generated quicker and with fewer errors (due to automated processes) with the LoopBack framework. Also, the whole development process is more organized under the LoopBack approach.
Usual Steps | LoopBack Approach |
DATABASE | |
Create database architecture, tables, and relations | |
BACK-END | |
Create tables-matching models (EDT: small project – 4h; medium project 8-16h; complex project – 20+h) | |
Configure authentications, user type, access to data for each model (EDT: small project – 40h; medium project 60h; complex project – 100+h) | Use LoopBack roles system and Acces Control Layers (ACLs). For each model, specify what roles can access it. (EDT: small -medium project 8-16 h; complex project – 24h) |
Create a connection between the backend and the database (EDT: 4-8h) | The connection between the backend and the database is made through step-by-step instructions. There are connectors for multiple database types. (EDT: 1h) |
Create API REST for each model (EDT: 20-40h) | API is exported in a YAML file compliant with Open API and specifications. This file is added to Swagger.io and it can generate SDKs. |
Create filters for models, add custom functionalities – need to be implemented according to client’s needs (custom interrogations for the database) – usually raise development costs by 30% | Add filters for the already created models. LoopBack provides complete and complex filters. |
Paging Data Views | – |
Develop other custom functionalities | |
FRONT-END | |
Redefining models from the backend | The clients SDKs generated by Swagger has already added the models from the back-end. |
HTTP Server Requests through available methods (e.g. AJAX libraries) | Offers the possibility to access the API. There is an additional API layer that converts HTTP requests in methods of the corresponding models. Server’s responses don’t need to be parsed anymore because they are already mapped on the models. |
MOBILE | |
Generate models as you do in the back-end | Same models are generated with Swagger for iOS (Objective C, Swift, Swift 3) |
Manually configure server requests for CRUD using native code or custom libraries | – |
Advantages of the LoopBack based technology stack
Besides what we have previously highlighted, there are some additional advantages of the LoopBack based development method that are worth mentioning:
- It ensures an independent functioning of the server, client, and mobile projects;
- It provides interoperability through API requests (everything communicates with the backend and the database directly through API);
- It has a oAuth 2.0 component that enables applications to function as providers to authenticate and authorize client applications and users to access protected API endpoints.
- It is extremely secure due to application roles and database protection;
- It includes push notification components;
- Its storage component allows to easily switch between saving the files right on the server or in an Amazon S3 Bucket or cloud services like Rackspace, Azure or Openstack. There’s no need to perform API requests to these services to upload the files. Loopback handles everything, and all that’s needed is an API key.
All, in all, the new full-stack technology is cleaner, more flawless and much more rapid that the traditional one. For clients, this means development costs reduced up to 40%, increased speed to market and a code that is less prone to errors and bugs. It gives room for easier upgrades and new features development.
If you want to take advantages of our revolutionary development method, CONTACT US, tell us your project requirements and we’ll come with a customized development process perfectly tailored for your business needs.