Wie wir die Entwicklung von WL-Anwendungen automatisiert haben

White Label ist eine mobile Anwendung, die für jede Marke angepasst werden kann: Entwerfen Sie in Unternehmensfarben, wählen Sie die erforderlichen Blöcke und Funktionen aus und fügen Sie eine Beschreibung hinzu. Wir veröffentlichen sie seit 2015 auf der Basis von Rambler / Registrierkasse. In diesem Artikel möchten wir Ihnen erklären, wie wir es geschafft haben, die Entwicklung von WL zu automatisieren und zu beschleunigen.







Rambler / Box Office ist ein Online-Service und eine Anwendung für den Verkauf von Tickets für Konzerte, Theater, Kino, Sport und andere Veranstaltungen. Wir entwickeln auch andere B2B-Angebote für Partner: ein mobiles SDK, integrierte Widgets für Websites und soziale Netzwerke, ein CRM-System für Vertriebs- und Zielgruppenanalysen sowie eine Reihe technologischer Lösungen. Aber heute werden wir uns nur auf WL konzentrieren.



Was kam vorher



Nach Erhalt einer Anfrage für eine WL-Anwendung musste der Projektmanager alle Anforderungen neu formulieren, verfeinern und an den Teammanager übertragen. Er wiederum klärte und forderte erneut alle notwendigen Parameter an und verteilte die Arbeit dann an Designer, Entwickler und Tester. Um eine WL-Anwendung zu erstellen, müssen Sie außerdem ein neues Ziel im Projekt erstellen, alle Konfigurationsdateien durchgehen, die erforderlichen IDs für verschiedene Dienste festlegen, Farben, Schriftarten, Bilder usw. einrichten.







Unter idealen Bedingungen sollte die Entwicklung einer neuen WL mindestens 2-3 Tage dauern - eine für iOS- und Android-Entwickler sowie Tests. Wenn ein Mitarbeiter zum ersten Mal mit der Erstellung einer WL-Anwendung konfrontiert ist, kann die Aufgabe für ihn bis zu drei Tage dauern, was die Gesamtarbeitszeit erhöht. Für Rambler / Cashier ist das Erstellen einer WL-Anwendung daher eine Routineaufgabe, die den Entwicklern auf die Schultern fällt und ihnen wertvolle Zeit nimmt.



Was waren die Lösungen



  1. Es war möglich, alles so zu lassen, wie es ist, und die Zeit der Entwickler weiterhin regelmäßig mit der "manuellen" WL-Erstellung zu verbringen.
  2. Die zweite Möglichkeit besteht darin, eine Lösung zu entwickeln, die den Prozess der Erstellung neuer WLs automatisiert, ohne Entwicklungsressourcen einzubeziehen. Gleichzeitig spielt es keine Rolle, wie oft Anforderungen zum Erstellen neuer WLs eingehen, da die Aufgabe mit minimalem Aufwand ausgeführt wird.


Nachdem wir die Häufigkeit der Anfragen zur Erstellung neuer WLs analysiert hatten, entschieden wir uns, bei der zweiten Option zu bleiben. Auf diese Weise können Sie eine Entwicklungsressource nur einmal ausgeben, dem Unternehmen jedoch ein Tool zur Verfügung stellen, mit dem Sie eine Aufgabe schnell und mit minimalem Aufwand ausführen und nur die Zeit der Manager und den technischen Support dafür nutzen können.



Wie die Lösung funktioniert



Wir haben eine Website mit einem Verwaltungspanel in Form von Microservices eingerichtet - einem neuen Abschnitt im bestehenden Admin-Panel (CMS) zur Verwaltung von Rambler / Cashier-Verkäufen und Showcases. Wir haben Skripte für iOS und Android entwickelt, die lokal im Projekt eine neue Anwendung erstellen und alle erforderlichen Parameter bereitstellen.



RabbitMQ wird als Nachrichtenbroker verwendet, und alle Einstellungen werden im Archiv gespeichert und in der Rambler Artifactory veröffentlicht. Die GitLab-API wird dann verwendet, um den Erstellungsprozess in den mobilen Repositorys zu starten.



Auf der Backend-Seite wird ein Archiv mit JSON-Dateien erstellt, die die im Verwaltungsbereich eingegebenen Informationen und Grafiken enthalten. Der Gitlab CI-Trigger ruft die Pipeline in den Parametern auf, an die er den Link von der Artifactory zum Archiv übergibt. Das auf dem Buildcomputer konfigurierte Skript, das sich im Stammverzeichnis des Projekts befindet, wird mit einem Eingabeparameter-Link gestartet.



Skript für iOS Ein



Ruby-Skript entpackt das Archiv, sendet die erforderlichen Daten im gesamten Projekt und überträgt die Kontrolle an die nächste Aufgabe, die Änderungen festschreibt, die Pods aktualisiert und die Baugruppe mit anschließender Anzeige im App Store zusammenstellt.



Android-Skript



Joba holt die notwendigen jq- und entpacken Bibliotheken. Die Bibliothek "entpacken" entpackt das Archiv, das Skript analysiert den JSON mit "jq", erstellt einen neuen Ordner im Modul "app" und sucht nach einer .jks-Datei für die angegebene Anwendung.



Wenn die Anwendung neu ist, wird diese Datei erstellt, das Release-APK wird zusammengestellt und das Skript sendet es an firebase - es aktualisiert die Anwendung im Markt. Als Nächstes prüft die Aufgabe, ob eine neue .jks-Datei angezeigt wurde, und überträgt sie, falls vorhanden, an GitLab.



Darüber hinaus wurde ein Dienst bereitgestellt, der den Status laufender Assemblys überwacht und deren Status aktualisiert, sodass Sie den Prozess überwachen und auftretende Probleme steuern können.



In der Praxis sieht die Automatisierung der Erstellung von WL-Anwendungen folgendermaßen aus



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








Wir haben die Erstellung von WL-Anwendungen so weit wie möglich automatisiert. Früher dauerte der Entwicklungsprozess selbst 2-3 Tage und nahm den Programmierern die Ressourcen weg. Jetzt fährt der Manager alle Daten in 15 Minuten ein. Nach etwa 20 Minuten wird die Baugruppe automatisch erstellt und zum Testen an die Qualitätssicherung gesendet. Unsere Partner erhalten alle Möglichkeiten, die Rambler / Checkout bietet, und wir sparen Zeit, Ressourcen und minimieren Fehler.



All Articles