Funktionen, die sich gut als On-Demand-Modul eignen, sind solche, die von der Mehrheit der Nutzer bei der Installation nicht benötigt werden. Hier sind einige Beispiele für App-Funktionen, die sich für On-Demand-Module eignen:
- Bearbeiten und Hochladen eines Videos in einer App, in der die meisten Nutzer nur Videos ansehen
- Hinzufügen eines Rezepts in einer App, in der die meisten Nutzenden nur stöbern und den Rezepten anderer folgen
- Hilfe- und Supportfunktionen, wenn die meisten Nutzer keine Hilfe suchen oder diese nicht in der App suchen
- Große Bibliotheken für weniger genutzte Funktionen wie die detaillierte Erfassung und Meldung von Fehlern
- Spezifische Zahlungs- oder Bezahlfunktionen
- Medien mit sehr hoher Auflösung oder VR-/AR-Funktionen
Im Normalfall, wenn diese Module relativ klein sind (weniger als 10 MB) und keine Netzwerk- oder anderen Fehler auftreten, können Nutzer ein On-Demand-Modul sehr schnell herunterladen und verwenden. Das heißt, die Nutzung unterscheidet sich in der Regel nicht von der Nutzung, wenn das Modul bei der App-Installation vorhanden gewesen wäre.
Auf dieser Seite werden Best Practices beschrieben, die Ihnen bei Folgendem helfen:
- Sorge dafür, dass deine Nutzer über relativ große Moduldownloads, die nicht sofort geladen werden, oder über Fehler bei der Modulinstallation informiert sind und das Gefühl haben, die Kontrolle zu haben.
- Optimieren Sie die Modulbereitstellung weiter, insbesondere in Situationen, in denen Sie davon ausgehen können, dass ein Nutzer ein bestimmtes Modul benötigt.
Nachdem Sie diesen Leitfaden gelesen haben, können Sie sich diese Best Practices in der Play Core API-Beispiel-App ansehen.
Nutzer auf dem Laufenden halten
Sie sollten den Nutzer informieren, wenn eine Funktion nicht sofort verfügbar ist. Wenn ein Nutzer die Funktion von Google Play herunterlädt, zeige den Fortschritt des Downloads an.
Sie können den Anfragestatus überwachen, um den Downloadfortschritt und den Installationsstatus anzuzeigen. Welche Art von Benutzeroberfläche du anzeigen möchtest, hängt jedoch möglicherweise von der Größe des Downloads ab:
- Für kleinere Module (~10 MB oder weniger), die sehr schnell installiert werden können, solltest du Indikatoren wie Spinner oder eine kurze Meldung „Inhalt wird heruntergeladen“ verwenden.
- Bei größeren Modulen, deren Download und Installation einige Sekunden oder länger dauern kann, empfiehlt es sich, eine Fortschrittsanzeige für den Download und die Installation einzublenden, wie in Abbildung 1 dargestellt.
Abbildung 1. Anzeigen einer Meldung und einer Fortschrittsanzeige beim Herunterladen und Installieren einer On-Demand-Funktion
Installationsverzögerungen und -fehler angemessen kommunizieren
Wenn ein Download fehlschlägt oder langsamer als erwartet voranschreitet, teile dem Nutzer klar und transparent mit, was los ist und was er gegebenenfalls tun kann, wie in Abbildung 2 und 3 dargestellt. Wenn Sie beispielsweise den Status der Downloadanfrage überwachen und Ihre App den Fehler API_NOT_AVAILABLE erhält, benachrichtigen Sie den Nutzer, dass sein Gerät keine On-Demand-Downloads unterstützt.
Abbildung 2: Informiere den Nutzer, warum eine Funktion derzeit nicht installiert werden kann.
Abbildung 3: Erkläre dem Nutzer, warum das Herunterladen einer Funktion möglicherweise länger als erwartet dauert.
Wert anzeigen, bevor die Berechtigung für große Downloads angefordert wird
Wenn ein On-Demand-Modul groß ist (> 150 MB), muss der Nutzer vor dem Herunterladen seine Einwilligung geben.
Bevor Sie das Modul anfordern, erklären Sie Ihren Nutzern den Wert des Moduls. Erkläre ihnen, warum du diese Anfrage stellst, so wie du es auch bei der Anfrage von App-Berechtigungen tun würdest. Wenn Sie offen mit Nutzern kommunizieren, ist es wahrscheinlicher, dass sie den Download akzeptieren.
Stellen Sie sich vor, Sie entwickeln eine E-Commerce-App, mit der Nutzer Möbel mithilfe von Augmented Reality (AR) direkt in ihrer Wohnung platzieren können. Sie könnten beispielsweise eine Nachricht wie „Möchten Sie Ihr neues Sofa in Ihrem Wohnzimmer sehen?“ hinzufügen. Installieren Sie jetzt den Augmented-Reality-Viewer.“
Download und Installation im Hintergrund ausführen
Das Herunterladen und Installieren von Modulen sollte immer im Hintergrund erfolgen. Das bedeutet, dass Nutzer, die auf die Verfügbarkeit einer Funktion warten, andere Teile Ihrer App weiterhin verwenden können sollten. Wenn die Funktion verfügbar ist, sollten Sie eine Benachrichtigung senden, über die Nutzer nach eigenem Ermessen zu dieser Funktion wechseln können.
Wie in Abbildung 5 dargestellt, verwendet der Nutzer die App weiter und erhält eine Benachrichtigung, wenn die Installation einer On-Demand-Funktion abgeschlossen ist.
Abbildung 5: Anstatt den Kontext des Nutzers nach Abschluss der Modulinstallation plötzlich zu ändern, solltest du ihn darüber informieren, dass die angeforderte Funktion jetzt verfügbar ist.
Wenn das Modul einsatzbereit ist, benachrichtige den Nutzer und gib ihm die Möglichkeit, die Funktion zu starten. Dieses Muster bietet Nutzern Kontext und Kontrolle über ihre Nutzung.
In einigen Fällen können Sie die Funktion einführen, sobald sie bereit ist. Da dies jedoch die Nutzererfahrung beeinträchtigen kann, sollten Sie sorgfältig prüfen, ob dieses Verhalten erwartet und angemessen ist.
Gerätespeicherplatz freigeben, wenn ein Modul nicht mehr benötigt wird
Eine nützliche Funktion aller Funktionsmodule ist die Möglichkeit, sie einzeln zu deinstallieren. Wenn ein Funktionsmodul nicht mehr verwendet wird, können Sie die Größe Ihrer App auf dem Gerät eines Nutzers reduzieren, indem Sie Google Play auffordern, dieses Modul zu deinstallieren.
Beispielsweise kann Ihre App einen robusten Onboarding-Ablauf haben, der möglicherweise Rich Media enthält. Nachdem ein Nutzer den Onboarding-Vorgang abgeschlossen hat oder nachdem er eine bestimmte Zeit lang aktiv war, kannst du die Play Feature Delivery API verwenden, um Google Play anzuweisen, nur diese Komponente deiner App zu deinstallieren.
Tipps für erfahrene Nutzer
In der Regel müssen Sie Situationen berücksichtigen, in denen der Nutzer explizit signalisiert, dass er die Funktionalität Ihrer On-Demand-Funktionsmodule nutzen möchte.
Möglicherweise möchten Sie jedoch vorhersagen, wann ein Nutzer wahrscheinlich mit einer Funktion interagiert, bevor er Ihnen signalisiert, dass er sie verwenden möchte. Am Beispiel einer App, mit der du Kochrezepte herunterladen und erstellen kannst, wird in den folgenden Richtlinien beschrieben, wie du die Modulbereitstellung optimieren kannst, indem du die Anforderungen der Nutzer berücksichtigst:
Antizipieren, dass ein Nutzer in der aktuellen Sitzung eine Funktion benötigt Überlegen Sie, ob Nutzer nur dann ein Konto für die Rezept-App erstellen müssen, wenn sie eigene Rezepte erstellen und mit der Community teilen möchten. Sie können die Kontoerstellung als Signal dafür verwenden, dass der Nutzer wahrscheinlich ein eigenes Rezept hinzufügen möchte, und mit dem Herunterladen des Funktionsmoduls beginnen, bevor der Nutzer überhaupt auf „Rezept hinzufügen“ tippt. Sie können diesen Ansatz auf andere User Journeys in der App anwenden, um den Download von Funktionen nahtloser zu gestalten.
Antizipieren Sie den Bedarf des Nutzers an der Funktion in einer bevorstehenden Sitzung. Wenn ein On-Demand-Modul nicht sofort heruntergeladen und installiert werden muss, können Sie die Installation auf einen Zeitpunkt verschieben, an dem die App im Hintergrund ausgeführt wird. Google Play übernimmt dann den Download und die Installation für Sie. Angenommen, Sie möchten neue saisonale Rezepte für die Koch-App veröffentlichen, die für die aktuelle Sitzung des Nutzers keine hohe Priorität haben. Du kannst Google Play auffordern, diese Rezepte herunterzuladen und zu installieren, wenn die App im Hintergrund ausgeführt wird. Das ist besonders nützlich für größere Funktionen (> 10 MB), die nicht sofort, aber wahrscheinlich in Zukunft benötigt werden.
Antizipieren Sie den Bedarf eines Nutzers an einer Funktion vor der App-Installation. Sie können die Unterstützung für die bedingte Bereitstellung hinzufügen, um Ihre Funktion bei der Installation basierend auf dem Land des Nutzers, der Hardwarefunktionen des Geräts und dem API-Level einzubinden. Beispielsweise könntest du Rezepte mit Schweinefleisch in bedingte Module aufnehmen und diese Module in Regionen, in denen Schweinefleischgerichte überwiegend vermieden werden, von der App-Installation ausschließen.