Fernkonfiguration

Fernkonfiguration ist eine Softwareentwicklungstechnik, bei der das Verhalten oder die Features einer App remote geändert werden können, ohne ein App-Update veröffentlichen zu müssen.

Was ist Fernkonfiguration?

Fernkonfiguration (kurz für „Remote Configuration") ist ein cloudbasierter Dienst, der es Entwicklern ermöglicht, das Verhalten und die Darstellung von Mobile Apps dynamisch zu ändern, ohne dass Nutzer App-Updates herunterladen und installieren müssen. Er ermöglicht Echtzeit-Änderungen an der App-Funktionalität, der Benutzeroberfläche und der Verfügbarkeit von Features über serverseitige Konfiguration.

Sie können das Verhalten oder die Features einer App remote ändern, ohne ein App-Update veröffentlichen zu müssen. Dies geschieht, indem Standardwerte für verschiedene Einstellungen in der App festgelegt und anschließend die Werte für diese Variablen in Echtzeit von einem Remote-Server abgerufen werden. 

Das Konzept der Fernkonfiguration wurde durch Firebase (Firebase Remote Config) populär, eine Mobile-App-Entwicklungsplattform von Google, und hat sich seitdem als gängige Praxis unter Mobile-App-Entwicklern etabliert. 

Anwendungsfälle für Fernkonfiguration

Es gibt eine Reihe gängiger Anwendungsfälle für Fernkonfiguration in App-Entwicklungsprozessen:

  1. Rollbacks

    Wenn eine Android- oder iOS-App aktualisiert wird, muss die App in der Regel den App-Store-Überprüfungsprozess durchlaufen, der 24–48 Stunden dauern kann – und sogar länger, wenn das Update abgelehnt wird. Dies kann ein großes Problem sein, wenn nach dem Go-Live Fehler oder Probleme in einem Update entdeckt werden und es Tage dauert, bis ein Fix für die App-Nutzer bereitgestellt werden kann.

    Mit Fernkonfiguration können Sie schnell Änderungen an einer App vornehmen, die bereits im App Store live ist, und Features einer App zurücksetzen, ohne Änderungen am Backend-Code vornehmen zu müssen – einfach durch Bearbeitung serverseitiger Fernkonfigurationsparameter.
  2. Feature-Rollouts

    Da Fernkonfiguration es Ihnen ermöglicht, das Verhalten und die Darstellung Ihrer App remote zu steuern, ist sie eine hervorragende Möglichkeit, neue Features kontrolliert an Ihre Nutzer auszurollen. Anstatt neue Features mit einem App-Update an 100 % Ihrer Nutzer auszuliefern, können Sie bedingte Werte in Ihrer App festlegen, sodass nur ein Segment Ihrer Nutzer ein Feature sieht, und Sie können neue Features in Ihrem eigenen Tempo ausrollen, sobald sie genehmigt wurden.
  3. A/B-Testing

    Da Sie Fernkonfiguration nutzen können, um Features für eine Teilmenge Ihrer Nutzer zu aktivieren und zu deaktivieren, kann sie auch für A/B-Testing eingesetzt werden. Beim A/B-Testing wird einem Teil Ihrer Nutzer ein neues Erlebnis angezeigt, während einer Kontrollgruppe das ursprüngliche Erlebnis gezeigt wird. Anschließend können Sie statistische Analysen verwenden, um die Auswirkungen eines neuen Features zu bestimmen und Vertrauen darin zu gewinnen, dass ein neues Feature tatsächlich eine Verbesserung gegenüber dem alten Erlebnis darstellt.

Beispiele für Fernkonfiguration

Angenommen, Sie sind App-Entwickler und erstellen ein Mobilspiel für Android & iOS. Das Entwicklungsteam möchte eine neue Chat-Funktionalität zum Spiel hinzufügen, ist aber besorgt, wie sich dies auf die App-Nutzungsraten auswirken könnte. Ein Entwickler hat während eines Hackathons einen funktionierenden Prototyp der Funktionalität erstellt, aber das Team möchte testen, wie sie sich in der Praxis verhält, bevor viel Entwicklungsaufwand investiert wird.

Dies wäre ein guter Anwendungsfall für Fernkonfiguration. Das Feature könnte zur App hinzugefügt und so konfiguriert werden, dass es nur 10 % Ihrer Nutzerbasis angezeigt wird. Den anderen 90 % der Nutzer wird das ursprüngliche Erlebnis gezeigt, was zu einem A/B-Test führt, bei dem Sie die Auswirkungen des neuen Features auf Ihre zentralen App-Metriken messen können. Falls Fehler oder Probleme entdeckt werden, kann das Feature einfach remote deaktiviert werden, ohne den langwierigen App-Store-Überprüfungsprozess durchlaufen zu müssen.

Sie könnten auch verschiedene Fernkonfigurationsparameter verwenden, um verschiedene Funktionalitäten des Chats remote zu steuern und zu testen, wie z. B. Nachrichtenlänge, Chatbox-Größe, Inhaltsfilter usw.

Hier sind einige weitere Beispiele für Fernkonfiguration.

E-Commerce-App

  • Produktpreise und Verfügbarkeit dynamisch aktualisieren
  • Saisonale Aktionen und Rabatte ein- und ausschalten
  • UI-Elemente für verschiedene Nutzersegmente anpassen

Nachrichten-App

  • Sichtbarkeit verschiedener Nachrichtenkategorien steuern
  • Inhalts-Aktualisierungsraten basierend auf dem Nutzer-Engagement anpassen
  • Kommentare oder Social-Sharing-Features aktivieren/deaktivieren

Fitness-Tracking-App

  • Trainingspläne basierend auf dem Nutzerfortschritt anpassen
  • Zielsetzungs-Algorithmen optimieren
  • Neue Gesundheits-Tracking-Features ein- und ausschalten

Social-Media-App

  • Neue Reaktionstypen für bestimmte Nutzergruppen ausrollen
  • Content-Moderations-Algorithmen anpassen
  • Sichtbarkeit experimenteller Features wie Audio-Räume oder Kurzvideos steuern

So implementieren Sie Fernkonfiguration

Vier Schritte:

  1. Einen Fernkonfigurationsserver einrichten oder einen Drittanbieter-Dienst auswählen
  2. Clientseitige Logik zum Abrufen und Anwenden von Fernkonfigurationen implementieren
  3. Eine Strategie für den Umgang mit Konfigurationsupdates und Fallback-Mechanismen entwickeln
  4. Sicherheitsmaßnahmen zum Schutz Ihres Fernkonfigurationssystems implementieren

Eine einfache Methode zur Implementierung von Fernkonfiguration ist die Verwendung von Feature Flags und Feature-Variablen. Ein Feature Flag (auch bekannt als Feature Toggle) ist ein bedingtes Flag, das auf „ein" oder „aus" gesetzt werden kann und remote über eine API oder über eine grafische Benutzeroberfläche in einer Feature-Management-Plattform wie Optimizely Rollouts konfiguriert werden kann.

Neue Features und Funktionalitäten können in Feature-Flagging-Code eingebettet und einfach remote aktiviert oder deaktiviert werden. Feature Flags können auch bedingt basierend auf dem Nutzerprofil umgeschaltet werden, sodass Flags für eine bestimmte Teilmenge Ihrer Nutzerbasis aktiviert werden können.

Feature-Variablen sind Container, die verschiedene Werte speichern können, welche dynamisch durch Abfrage einer Konfigurationsdatei auf einem Cloud-Dienst über die REST-API gesetzt werden. Diese Remote-Werte können so konfiguriert werden, dass sie das Verhalten oder die Darstellung Ihrer App dynamisch ändern, ohne dass Änderungen in einem App Store veröffentlicht werden müssen.

Fernkonfiguration vs. Feature Flags

Obwohl Fernkonfiguration und Feature Flags eng verwandte Konzepte sind, gibt es einige wesentliche Unterschiede:

  • Umfang: Fernkonfiguration ist breiter angelegt und ermöglicht Änderungen an verschiedenen App-Parametern, während sich Feature Flags in der Regel auf das Aktivieren/Deaktivieren bestimmter Features konzentrieren. 
  • Granularität: Fernkonfiguration ermöglicht oft eine feingranularere Steuerung des App-Verhaltens, während Feature Flags in der Regel binär (ein/aus) sind. 
  • Anwendungsfälle: Fernkonfiguration wird häufig für A/B-Testing und schrittweise Rollouts verwendet, während Feature Flags üblicherweise für Canary-Releases und die Trennung von Deployment und Release eingesetzt werden.

Einschränkungen und Überlegungen

Bei der Implementierung von Fernkonfiguration sollten Sie die folgenden potenziellen Herausforderungen berücksichtigen:

  • Erhöhte Komplexität in der App-Architektur
  • Mögliche Performance-Einbußen durch häufige Konfigurationsabrufe
  • Datenschutz- und Datennutzungsbedenken im Zusammenhang mit Nutzersegmentierung
  • Risiko einer übermäßigen Abhängigkeit von Fernkonfigurationen, was die App-Wartung erschweren kann

Kostenlose Fernkonfigurations-Tools

Da sich die Mobile-App-Entwicklung ständig weiterentwickelt, wird Fernkonfiguration voraussichtlich eine immer wichtigere Rolle bei der Erstellung flexibler, reaktionsfähiger und nutzerzentrierter Anwendungen spielen.

Wenn Sie mit Fernkonfiguration beginnen möchten, bietet Optimizely eine kostenlose Fernkonfigurationslösung namens Optimizely Free Feature Flagging an. Optimizely Rollouts bietet kostenloses Feature Flagging und A/B-Testing als Funktion, sodass Sie die Vorteile der Fernkonfiguration in Ihrem App-Entwicklungsprozess nutzen können.

Optimizely Rollouts funktioniert mit den gängigsten Sprachen und SDKs für die Mobile-Entwicklung, darunter Swift, Java, JavaScript und Objective-C.