Selbstbedienungs-Kiosk-App für eine Restaurantkette

Selbstbedienungs-Kiosk-App für eine Restaurantkette

Wir entwickelten eine funktionsreiche Kiosk-App, die erfolgreich auf über 3.000 Geräten in über 500 Restaurants eingeführt wurde. Die App verbesserte die betriebliche Effizienz der Restaurants und kam sowohl den Kunden als auch dem Restaurantpersonal zugute.

Inhaltsverzeichnis

Kontext

Unser Kunde, eine 24/7-Restaurantkette, wollte den Bestellvorgang beschleunigen und führte daher Kioske ein, die es seinen Kunden ermöglichten, Bestellungen und Zahlungen schneller vorzunehmen und den Verwaltungsaufwand des Unternehmens zu reduzieren. Im Laufe der Zeit stieß der Kunde mit seinen Selbstbedienungskiosken auf folgende Herausforderungen:

  1. Leistungsfähigkeit
    Wenn die Kioske im Leerlauf waren, konnten sie die Seite nicht aktualisieren, insbesondere wenn komplexe Animationen oder große Datenmengen angezeigt wurden.
  2. Konnektivität
    Die Zahlungsterminals waren über ein Netzwerk mit den Kiosken verbunden. Dies führte zu einer geringeren Verbindungsgeschwindigkeit und Stabilität der Zahlungen über die Kioskanwendung, insbesondere zu Stoßzeiten.

Das Unternehmen war auf der Suche nach einem Technologiepartner, um die Geschwindigkeit der Auftragsabwicklung zu erhöhen und die Kundenzufriedenheit zu verbessern. Die Wahl fiel schließlich auf Itransition, weil wir bereits mehrere Lösungen für HoReCa erfolgreich geliefert und unterstützt hatten und über vielfältige Erfahrung in der App-Entwicklung verfügten.

 

Lösung

Prüfung

Das Team von Transition begann mit der Durchführung eines Audits der Kiosk-App des Kunden. Wir überprüften den Code, analysierten die Architektur und die Anforderungen und führten Qualitätsprüfungen durch. Der Kunde gewährte uns Zugriff auf den Quellcode, damit wir den Zustand der Lösung genauer untersuchen konnten. Außerdem durchsuchten wir die Codebasis der App nach Syntaxfehlern, Code Smells, nicht verwendeten Variablen und der Nichteinhaltung von Best Practices bei der Programmierung. Außerdem untersuchten wir die Architektur und die Anforderungsdokumentation der Anwendung, um potenzielle architektonische Schwachstellen, Skalierbarkeitsprobleme und Lücken zwischen dem aktuellen und dem gewünschten Zustand der Anwendung zu ermitteln.

Itransition präsentierte innerhalb einer Woche die ersten Evaluierungsergebnisse, die folgende Probleme aufzeigten:

  • Datenverluste
    Aufgrund der unsicheren Datenspeicherung und Netzwerkkommunikation (RabbitMQ) stieg der Speicherverbrauch ständig an, bis die Anwendung nach 1 oder 2 Tagen Dauerbetrieb einfror.
  • Langsames UI-Rendering
    Komplexe Animationen verlangsamten das Rendering der Benutzeroberfläche, und die durchschnittliche Reaktionszeit betrug bis zu 10 Sekunden.
  • Schlechte Video-/Audioqualität
    Die App bot Module für die Wiedergabe von Video- und Audiodateien, aber die Wiedergabequalität wurde durch verschiedene Faktoren beeinträchtigt, darunter die Fähigkeiten des Geräts, die Netzwerkbedingungen und eine unsachgemäße Implementierung.

Die Probleme wurden hauptsächlich durch die schlechte Qualität des auf React Native basierenden Codes verursacht. Die Fehlerbehebung dieser Probleme erforderte 2x so viel Zeit für spezifisches Debugging und Untersuchungen wie die Entwicklung einer neuen Kiosk-App von Grund auf. Außerdem garantierte die Fehlerbehebung keine hohe Produkt- und UX-Qualität und Kompatibilität mit der Hardware.

Kiosk-Entwicklung

Um alle Projektspezifika zu definieren und die optimalen Technologien auszuwählen, arbeitete unser Team eng mit dem Managementteam des Restaurants zusammen. Gemeinsam mit dem Kunden identifizierten wir auch Merkmale der Kiosk-App wie benutzerdefinierte Einstellungen (z. B. Verwendung von Kiosken als Banner während aktiver Rekrutierungs- oder Marketingkampagnen), Integration von Treueprogrammen und Automatisierung der Kioskverwaltung (z. B. Rückgabe von Bestellungen direkt vom Kiosk).

Wir empfahlen die Entwicklung einer nativen Kiosk-App als die kostengünstigste Option. Die Entscheidung, eine Android-basierte Kiosk-App zu entwickeln, wurde durch den Bedarf an überlegener Leistung, Kompatibilität mit Android-Kioskgeräten und einer optimierten Benutzererfahrung bestimmt.

Lösungsarchitektur

Wir schlugen eine saubere Architektur mit einer strikten Unterteilung in Schichten vor, um Abhängigkeiten zwischen der Benutzeroberfläche und der Geschäftslogik der App zu reduzieren. Die Schichten würden die Stabilität der App und eine einfachere Fehlerbehebung gewährleisten, sowie Flexibilität, Skalierbarkeit, Wiederverwendbarkeit des Codes und Zukunftssicherheit. Diese Merkmale trugen zu einer robusten, zuverlässigen und anpassungsfähigen Anwendung bei, die den sich ändernden Anforderungen der Benutzer und des Unternehmens gerecht wurde.

Um einen unterbrechungsfreien Betrieb der Anwendung zu gewährleisten, wurden alle Daten in der Datenbank zwischengespeichert. Außerdem haben wir für jede Ebene unterschiedliche Datenmodelle verwendet. Wenn die Kioskgeräte nicht auf das Netzwerk zugreifen können, können die Benutzer dennoch die Inhalte durchsuchen, was zu einem schnelleren Datenzugriff und einer besseren Leistung der App führt. Als lokale Datenbank haben wir die Room-Bibliothek verwendet.

Kiosk app architecture

Zahlungen

Um eine nahtlose Interaktion zwischen Kiosken und Zahlungsterminals zu gewährleisten, haben wir ein SDK entwickelt, das der Kiosk-App eine transparente Kommunikation mit den Terminals über USB ermöglicht. Das SDK fungiert als Vermittler zwischen der Kiosk-App und der ausstellenden Bank und übernimmt die Autorisierung, Verschlüsselung und Weiterleitung der Zahlungsdaten.

Nach der Autorisierung der Zahlung schließt die Kiosk-App die Transaktion ab, aktualisiert den Auftragsstatus und erstellt eine Zahlungsbestätigung oder einen Beleg für den Kunden. Diese Bestätigung kann auf dem Bildschirm des Kiosks angezeigt, per E-Mail an den Kunden gesendet oder auf einem an den Kiosk angeschlossenen Belegdrucker ausgedruckt werden.

Wir haben außerdem für eine Ende-zu-Ende-Verschlüsselung der Zahlungsdaten gesorgt. Jetzt verschlüsselt die App die Zahlungsnachricht auf Zahlungsterminals und entschlüsselt sie auf unserer Zahlungsplattform, wenn das Terminal sie zur Autorisierung an die ausstellende Bank sendet. Während der gesamten Zahlungsabwicklung verwendet die Kiosk-App sichere Verbindungen und erfüllt die Richtlinien des Payment Card Industry Data Security Standard (PCI DSS), um sensible Zahlungsdaten zu schützen und sichere Transaktionen zu gewährleisten.

Um den kritischen Bedenken hinsichtlich Datenlecks zu begegnen, haben wir eine Reihe von Best Practices implementiert, um die Integrität und den Datenschutz der Benutzerdaten zu gewährleisten. Darüber hinaus setzten wir Esper MDM (Mobile Device Management) ein, das eine zusätzliche Ebene der Transparenz und Kontrolle über alle Kioskgeräte bietet. Durch den Einsatz von Esper erhielt der Kunde die Möglichkeit, seine Kioske von einem zentralen Standort aus bereitzustellen, zu sperren, zu aktualisieren, per Fernzugriff zu überwachen und zu verwalten.

Wir setzten auch Kotlin-Coroutinen ein, um Ressourcenlecks zu vermeiden und asynchrone Operationen effizient zu verwalten, da Coroutinen dem Prinzip der strukturierten Gleichzeitigkeit folgen. Wir analysierten die App auf mögliche Speicherlecks, die zu einem übermäßigen Verbrauch von Speicherressourcen führen und die Stabilität des Geräts gefährden könnten. Durch die Untersuchung des Codes und die aktive Überwachung der Speichernutzung konnten wir alle Speicherlecks, die während der Laufzeit der Anwendung auftraten, identifizieren und beheben. Auf diese Weise konnte sichergestellt werden, dass die Anwendung den Speicher effizient nutzt und die Ressourcen umgehend freigibt, wodurch die Wahrscheinlichkeit von Abstürzen oder Datenverlusten aufgrund von Speicherproblemen verringert wird.

Darüber hinaus haben wir mehrere Zahlungsmethoden implementiert, um die bestmögliche Kundenerfahrung zu gewährleisten. Endkunden können sowohl ein Standard-Kartenzahlungsterminal als auch Optionen mit einem QR-Code wählen. Die App verfügt über ein Treuemodul, das es den Endkunden ermöglicht, Punkte zu sammeln und einzulösen. Das Treueprogramm ist nahtlos in den Bestellprozess der Kiosk-App integriert. Nach jeder Bestellung aktualisiert die App sofort den Punktestand des Kunden und bietet personalisierte Belohnungen auf der Grundlage seiner Kaufhistorie. Die App kommuniziert auch mit dem Backend des Treueprogramms, um Kundendaten zu synchronisieren, Treuepunktesalden zu aktualisieren und relevante Informationen abzurufen, z. B. verfügbare Prämien oder Programmänderungen.

Wartungsmodul

Wir haben ein spezielles Modul für das Wartungspersonal entwickelt, das mit dem internen CRM des Kunden integriert ist. Es ermöglicht die Stornierung und Rückerstattung von Aufträgen und verfügt über die folgenden Funktionen:

Kiosk-Aktivierung

Das Wartungspersonal muss jeden Kiosk aktivieren, bevor er in Betrieb genommen wird, um zu verhindern, dass unbefugte Benutzer und Cyberkriminelle auf sensible Informationen zugreifen. Um die Datensicherheit zu gewährleisten, sollten die Kioske durch Eingabe eines geheimen Schlüssels aktiviert werden, der für jedes Restaurant einzigartig ist, im internen CRM generiert wird und nur dem Wartungspersonal zugänglich ist.

Die App umfasst auch eine Fernwartungsfunktion, die es dem Wartungspersonal ermöglicht, den Schlüssel im Falle verdächtiger Aktivitäten aus der Ferne zu sperren. Die App ermöglicht es dem Wartungspersonal auch, Kioske zu sperren/entsperren und Probleme aus der Ferne zu beheben. Diese Funktion reduziert die Notwendigkeit von Vor-Ort-Besuchen und minimiert die Ausfallzeiten der Kioske.

Abstimmung am Tagesende

Am Ende eines jeden Tages sollte der Kunde die Summen der einzelnen Zahlungsterminals abgleichen. Um diesen Prozess zu automatisieren, haben wir eine Funktion zur Abstimmung am Tagesende entwickelt, die es Managern ermöglicht, den Gesamtwert aller Einkäufe, Erstattungen, Auszahlungen und Aufschlagstransaktionen schnell zu überprüfen und den Bericht zur Abstimmung auszudrucken. Da die Zahlungsterminals direkt mit den Kioskgeräten verbunden sind, können die Manager mit einem Klick den Tagesendabgleich von Kassen und Terminals über eines der Kioskgeräte durchführen.

Werbemanagement

Die Kiosk-App verfügt über ein Werbemanagement-Modul, das es dem Kunden ermöglicht, die Menü- und Bestellanzeigen zu deaktivieren und den Kiosk während aktiver Rekrutierungs- und/oder Marketingkampagnen als Banner zu nutzen. Für die Wiedergabe von Audio- und Videodateien aus dem lokalen Speicher und aus dem Internet haben wir ExoPlayer, einen Medienplayer auf Anwendungsebene für Android, eingesetzt. Wenn der Kiosk im Leerlauf ist, zeigt er interaktive Werbevideos in Zeitlupe an, die zeigen, wie das Essen zubereitet wird und was angeboten wird, um potenzielle Kaufgelegenheiten zu schaffen.

UX

Wir entwarfen ein intuitives Menüdesign und legten dabei Wert auf einen effizienten Kassiervorgang und eine einfache Anpassung der Speisen. Wir haben auch Designs für verschiedene Zahlungs- und Quittungsoptionen erstellt. Darüber hinaus entwarfen wir Wartungsbildschirme, um das Personal beim Ersetzen von Bestellungen oder bei der Abstimmung am Ende des Tages zu unterstützen, sowie Banner für ihre Rekrutierungs- und/oder Marketingkampagnen. Unser Team arbeitete eng mit dem Designteam des Kunden zusammen und führte während des gesamten UX-Verbesserungsprozesses Fokusgruppeninterviews zur Kiosknutzung durch. Wir führten sogar A/B-Tests für bestimmte Elemente durch (z. B. für die Platzierung personalisierter Empfehlungen).

Kiosk app

QS

Während des gesamten Entwicklungsprozesses führte Itransition strenge Tests durch, um etwaige Fehler oder Probleme mit der Benutzerfreundlichkeit zu identifizieren und zu beheben. Unser QA-Team testete die freigegebenen Funktionen in einer Testumgebung, in der das Setup mit der in der Produktion verwendeten Hardware aufgebaut wurde, um so viele Ähnlichkeiten wie möglich zwischen dem Test-Setup und der entwickelten App sicherzustellen. Dies machte es auch einfacher, die Leistungstests miteinander zu vergleichen. Bei der Qualitätssicherung der Lösung setzten wir auf eine Kombination aus manuellen und automatisierten Tests.

Unser QA-Team führte die folgenden Aktivitäten durch:

  • Leistungstests, um Speicherlecks oder Probleme mit der Hardware und den Servern zu vermeiden und deren volle Einsatzbereitschaft im realen Betrieb sicherzustellen
  • Penetrationstests zur Ausnutzung von Schwachstellen durch Simulation der Aktivitäten eines Angreifers
  • Regressionstests, um sicherzustellen, dass Änderungen oder Aktualisierungen der Anwendung die Stabilität und Leistung der Lösung nicht beeinträchtigen

Ergebnisse

Itransition entwickelte eine Android-basierte Selbstbedienungs-Kioskanwendung, die mit den Kioskgeräten und Zahlungsterminals des Kunden kompatibel ist. Die gelieferte Kiosk-App wurde erfolgreich auf über 3.000 Kiosk-Geräten in über 500 Restaurants eingeführt und half der Restaurantkette, eine hohe Produktqualität und ein nahtloses Benutzererlebnis zu gewährleisten. Darüber hinaus hat die App dem Kunden geholfen, die folgenden Ergebnisse zu erzielen:

  • 85% aller Bestellungen werden über Kioske getätigt
  • 20% Steigerung des durchschnittlichen Bestellwerts
  • 30% schnellere Auftragsabwicklung
  • 10x Anstieg der durchschnittlichen Antwortzeit von 8-10 auf 0,9-1 Sekunden