Campus da Penteada, Startup Madeira, Sala 10
9020-105 Funchal
Madeira - Portugal
from 9am to 8pm
Find us here
Solutions
We started by analyzing the current SDK and its available functionality. Then, we began splitting it into smaller modules.
In the process, we also removed a lot of unnecessary third-party code and aimed to keep the code as native as possible to reduce size and potential security vulnerabilities.
Each module could work independently, so when clients wanted only part of the functionality, the product could be consumed separately.
This approach reduced the final application size from over 400 MB to packages ranging from 20 MB to 40 MB, depending on the products consumed.
Study
We began by reverse-engineering the current SDK, which contained all the products in one, and started segregating the code by feature. Then, we consulted with clients to understand which functionalities they really needed and created new products by combining features that made sense. If a client wanted additional functionality, we added a custom product as a separate SDK offering.
Architecture
We created a modularized architecture that allowed us to build individual packages for each product. With the help of a few other packages, we managed to integrate the products based on the clients’ requirements.
Distribution
We also noticed that the delivery process was still largely manual, so we analyzed the best tools to automate building, testing, and delivery. We ended up using Azure DevOps, as NEC had most of their infrastructure on Azure and used GitHub Packages for private distribution through invitation.