Cómo automatizamos el desarrollo de aplicaciones WL

White Label es una aplicación móvil que se puede personalizar para cualquier marca: diseñar en colores corporativos, seleccionar los bloques y la funcionalidad necesarios, agregar una descripción. Los hemos estado lanzando sobre la base de Rambler / caja registradora desde 2015, y en este artículo queremos contarte cómo logramos automatizar y acelerar el desarrollo de WL.







Rambler / box office es un servicio y una aplicación en línea para la venta de entradas para conciertos, teatro, cine, deportes y otros eventos. También estamos desarrollando otras ofertas B2B para socios: un SDK móvil, widgets integrados para sitios web y redes sociales, un sistema CRM para análisis de ventas y audiencia, así como una serie de soluciones tecnológicas. Pero hoy nos centraremos solo en WL.



Lo que vino antes



Después de recibir una solicitud para una solicitud de WL, el gerente de proyecto tuvo que reformar y refinar todos los requisitos y transferirlos al gerente del equipo. Él, a su vez, volvió a aclarar y solicitar todos los parámetros necesarios para luego distribuir el trabajo entre diseñadores, desarrolladores y probadores. Además, para crear una aplicación WL, debe crear un nuevo objetivo en el proyecto, revisar todos los archivos de configuración, establecer las ID necesarias para varios servicios, configurar colores, fuentes, imágenes, etc.







En condiciones ideales, el desarrollo de una nueva WL debería llevar al menos 2-3 días, uno para desarrolladores de iOS y Android, más pruebas. Si un empleado se enfrenta a la creación de una aplicación WL por primera vez, la tarea puede llevarle hasta tres días, lo que aumenta el tiempo total de trabajo. Por lo tanto, para Rambler / Cashier, crear una aplicación WL es una tarea rutinaria que recae sobre los desarrolladores y les quita un tiempo valioso.



Cuales fueron las soluciones



  1. Era posible dejar todo como está y seguir dedicando regularmente el tiempo de los desarrolladores a la creación "manual" de WL.
  2. La segunda opción es desarrollar una solución que automatice el proceso de creación de nuevos WL sin involucrar recursos de desarrollo. Al mismo tiempo, no importa la frecuencia con la que se reciban las solicitudes para crear nuevos WL, porque la tarea se realizará con un esfuerzo mínimo.


Después de analizar la frecuencia de las solicitudes para crear nuevos WL, decidimos seguir con la segunda opción. Esto te permitirá gastar un recurso de desarrollo solo una vez, pero brindará a la empresa una herramienta que te permita realizar una tarea rápidamente, con un mínimo esfuerzo y empleando solo el tiempo de los gerentes y el soporte técnico para ello.



Como funciona la solucion



Hemos lanzado un sitio con un panel administrativo en forma de microservicios: una nueva sección en el panel de administración existente (CMS) para administrar las ventas y vitrinas de Rambler / Cashier. Hemos desarrollado scripts para iOS y Android que crean una nueva aplicación localmente en el proyecto y le suministran todos los parámetros necesarios.



RabbitMQ se utiliza como intermediario de mensajes y todas las configuraciones se guardan en el archivo y se publican en Rambler Artifactory. Luego, la API de GitLab se usa para iniciar el proceso de compilación en los repositorios móviles.



En el lado del backend, se forma un archivo con archivos JSON que contienen la información ingresada en el panel administrativo y gráficos. El disparador Gitlab CI llama a la canalización, en los parámetros a los que pasa el enlace al archivo desde Artifactory. El script configurado en la máquina de compilación y que se encuentra en la raíz del proyecto se inicia con un enlace de parámetro de entrada.



Script para iOS Un



script Ruby descomprime el archivo, envía los datos necesarios a lo largo del proyecto y luego transfiere el control a la siguiente tarea, que confirma los cambios, actualiza los pods y ensambla el ensamblaje con posterior visualización en la App Store.



Secuencia de comandos de Android



Joba extrae las bibliotecas jq necesarias y descomprime. La biblioteca "unzip" descomprime el archivo, el script analiza el json usando "jq", crea una nueva carpeta en el módulo "app" y busca un archivo .jks para la aplicación dada.



Si la aplicación es nueva, entonces se crea este archivo, luego se ensambla el APK de lanzamiento y el script lo envía a firebase; actualiza la aplicación en Market. A continuación, la tarea comprueba si ha aparecido un nuevo archivo .jks y, si hay uno, lo envía a GitLab.



Además, se implementó un servicio que monitorea el estado de los ensamblados en ejecución y actualiza sus estados para que pueda monitorear el proceso y controlar los problemas emergentes.



En la práctica, la automatización de la creación de aplicaciones WL se ve así



  1. / , , , , , .
  2. .
  3. .
  4. (ID , , , ..).
  5. « », .
  6. App Store Google Play CI.








Hemos automatizado al máximo la creación de aplicaciones WL. Anteriormente, el proceso de desarrollo en sí tomaba de 2 a 3 días y les quitaba los recursos a los programadores, pero ahora el administrador ingresa todos los datos en 15 minutos y, después de unos 20 minutos, el ensamblaje se crea automáticamente y se envía a QA para su prueba. Nuestros socios obtienen todas las oportunidades que están disponibles en Rambler / checkout, y nosotros ahorramos tiempo, recursos y minimizamos los errores.



All Articles