How we automated the development of WL applications

White Label is a mobile application that can be customized for any brand: design in corporate colors, select the necessary blocks and functionality, add a description. We have been releasing them on the basis of Rambler / cash register since 2015, and in this article we want to tell you how we managed to automate and speed up the development of WL.







Rambler / box office is an online service and application for selling tickets for concerts, theater, cinema, sports and other events. We are also developing other B2B offers for partners: a mobile SDK, built-in widgets for websites and social networks, a CRM system for sales and audience analytics, as well as a number of technological solutions. But today we will focus only on WL.



What came before



After receiving a request for a WL application, the project manager had to re-form and refine all the requirements, transfer them to the team manager. He, in turn, once again clarified and requested all the necessary parameters and then distributed the work between designers, developers and testers. Also, to create a WL application, you need to create a new target in the project, go through all the configuration files, set the necessary IDs for various services, set up colors, fonts, images, etc.







In ideal conditions, the development of a new WL should take at least 2-3 days - one for iOS and Android developers, plus testing. If an employee is faced with the creation of a WL application for the first time, then the task can take up to three days for him, which increases the total work time. Thus, for Rambler / cashier, creating a WL application is a routine task that fell on the shoulders of developers and took away valuable time from them.



What were the solutions



  1. It was possible to leave everything as it is and continue to regularly spend developers' time on "manual" WL creation.
  2. The second option is to develop a solution that will automate the process of creating new WLs without involving development resources. At the same time, it does not matter how often requests for creating new WLs are received, because the task will be performed with minimal effort.


Having analyzed the frequency of requests to create new WLs, we decided to stick with the second option. This will allow you to spend a development resource only once, but provide the company with a tool that allows you to perform a task quickly, with minimal effort and use only the time of managers and technical support for this.



How the solution works



We have launched a site with an administrative panel in the form of microservices - a new section in the existing admin panel (CMS) for managing Rambler / Cashier sales and showcases. We have developed scripts for iOS and Android that create a new application locally in the project and supply all the necessary parameters to it.



RabbitMQ is used as a message broker, and all settings are saved to the archive and published in the Rambler Artifactory. The GitLab API is then used to start the build process on the mobile repositories.



On the backend side, an archive is formed with JSON files containing the information entered in the administrative panel and graphics. The Gitlab CI trigger calls the pipeline, in the parameters to which it passes the link to the archive from the Artifactory. The script configured on the build machine and lying in the root of the project is launched with an input parameter-link.



Script for iOS A



Ruby script unpacks the archive, sends the necessary data throughout the project, and then transfers control to the next task, which commits changes, updates the pods and assembles the assembly with subsequent display in the App Store.



Android script



Joba pulls in the necessary jq and unzip libraries. The "unzip" library unpacks the archive, the script parses the json using "jq", creates a new folder in the "app" module and checks for a .jks file for the given application.



If the application is new, then this file is created, after the release APK is assembled and the script sends it to firebase - it updates the application in the Market. Next, the task checks whether a new .jks file has appeared, and, if there is one, then pushes it to GitLab.



In addition, a service was deployed that monitors the state of running assemblies and updates their statuses so that you can monitor the process and control emerging problems.



In practice, the automation of creating WL applications looks like this



  1. / , , , , , .
  2. .
  3. .
  4. (ID , , , ..).
  5. ยซ ยป, .
  6. App Store Google Play CI.








We have automated the creation of WL applications as much as possible. Previously, the development process itself took 2-3 days and took away the resources of programmers, but now the manager drives in all the data in 15 minutes and after about 20 minutes the assembly is automatically created and sent to QA for testing. Our partners get all the opportunities that are available in Rambler / checkout, and we save time, resources and minimize errors.



All Articles