Comment nous avons automatisé le développement des applications WL

White Label est une application mobile qui peut être personnalisée pour n'importe quelle marque: concevez aux couleurs de l'entreprise, sélectionnez les blocs et fonctionnalités nécessaires, ajoutez une description. Nous les publions sur la base de Rambler / caisse enregistreuse depuis 2015, et dans cet article, nous voulons vous dire comment nous avons réussi à automatiser et à accélérer le développement de WL.







Rambler / box office est un service et une application en ligne pour la vente de billets pour des concerts, théâtre, cinéma, sports et autres événements. Nous développons également d'autres offres B2B pour les partenaires: un SDK mobile, des widgets intégrés pour les sites Web et les réseaux sociaux, un système CRM pour l'analyse des ventes et d'audience, ainsi que de nombreuses solutions technologiques. Mais aujourd'hui, nous nous concentrerons uniquement sur WL.



Ce qui est arrivé avant



Après avoir reçu une demande d'application WL, le chef de projet a dû reformuler et affiner toutes les exigences, les transférer au chef d'équipe. Il a à son tour clarifié et demandé à nouveau tous les paramètres nécessaires, puis a réparti le travail entre les concepteurs, les développeurs et les testeurs. De plus, pour créer une application WL, vous devez créer une nouvelle cible dans le projet, parcourir tous les fichiers de configuration, définir les ID nécessaires pour divers services, configurer les couleurs, les polices, les images, etc.







Dans des conditions idéales, le développement d'un nouveau WL devrait prendre au moins 2-3 jours - un pour les développeurs iOS et Android, plus les tests. Si un employé est confronté à la création d'une application WL pour la première fois, la tâche peut prendre jusqu'à trois jours pour lui, ce qui augmente le temps de travail total. Ainsi, pour Rambler / Cashier, créer une application WL est une tâche de routine qui incombait aux développeurs et leur a pris un temps précieux.



Quelles étaient les solutions



  1. Il était possible de tout laisser tel quel et de continuer à consacrer régulièrement le temps des développeurs à la création "manuelle" de WL.
  2. La deuxième option consiste à développer une solution qui automatisera le processus de création de nouveaux WL sans impliquer de ressources de développement. Dans le même temps, peu importe la fréquence à laquelle les demandes de création de nouveaux WL sont reçues, car la tâche sera exécutée avec un effort minimal.


Après avoir analysé la fréquence des demandes de création de nouveaux WL, nous avons décidé de nous en tenir à la deuxième option. Cela vous permettra de dépenser une seule fois une ressource de développement, mais fournira à l'entreprise un outil qui vous permettra d'effectuer une tâche rapidement, avec un minimum d'effort et d'utiliser uniquement le temps des gestionnaires et du support technique pour cela.



Comment fonctionne la solution



Nous avons lancé un site avec un panneau administratif sous forme de microservices - une nouvelle section dans le panneau d'administration existant (CMS) pour gérer les ventes et les vitrines Rambler / Cashier. Nous avons développé des scripts pour iOS et Android qui créent une nouvelle application localement dans le projet et lui fournissent tous les paramètres nécessaires.



RabbitMQ est utilisé comme courtier de messages et tous les paramètres sont enregistrés dans l'archive et publiés dans Rambler Artifactory. L'API GitLab est ensuite utilisée pour démarrer le processus de construction dans les référentiels mobiles.



Côté backend, une archive est formée avec des fichiers JSON contenant les informations saisies dans le panneau d'administration et des graphiques. Le déclencheur Gitlab CI appelle le pipeline, dans les paramètres auxquels il transmet le lien vers l'archive de l'Artifactory. Le script configuré sur la machine de construction et se trouvant à la racine du projet est lancé avec un lien de paramètre d'entrée.



Script pour iOS Un



script Ruby décompresse l'archive, envoie les données nécessaires tout au long du projet, puis transfère le contrôle à la tâche suivante, qui valide les modifications, met à jour les pods et assemble l'assemblage avec affichage ultérieur dans l'App Store.



Script Android



Joba extrait les bibliothèques jq et décompressez nécessaires. La bibliothèque "unzip" décompresse l'archive, le script analyse le json en utilisant "jq", crée un nouveau dossier dans le module "app" et recherche un fichier .jks pour l'application donnée.



Si l'application est nouvelle, ce fichier est créé, puis l'APK de la version est assemblé et le script l'envoie à Firebase - il met à jour l'application sur le marché. Ensuite, la tâche vérifie si un nouveau fichier .jks est apparu et, s'il y en a un, le transmet à GitLab.



En outre, un service a été déployé qui surveille l'état des assemblys en cours d'exécution et met à jour leur état afin que vous puissiez surveiller le processus et contrôler les problèmes émergents.



En pratique, l'automatisation de la création d'applications WL ressemble à ceci



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








Nous avons automatisé autant que possible la création d'applications WL. Auparavant, le processus de développement lui-même prenait 2 à 3 jours et prenait les ressources des programmeurs, mais maintenant, le gestionnaire gère toutes les données en 15 minutes et après environ 20 minutes, l'assemblage est automatiquement créé et envoyé au contrôle qualité pour des tests. Nos partenaires bénéficient de toutes les opportunités disponibles dans Rambler / checkout, et nous économisons du temps, des ressources et minimisons les erreurs.



All Articles