Funkcje, które dobrze się sprawdzają jako moduł na żądanie, to te funkcje, których większość użytkowników nie potrzebuje w momencie instalacji. Oto kilka przykładów funkcji aplikacji, które mogą być odpowiednie na żądanie:
- Edytowanie i przesyłanie filmów w aplikacji, w której większość użytkowników ogląda tylko filmy
- Dodanie przepisu w aplikacji, w której większość użytkowników przegląda i przestrzega tylko przepisów innych
- Pomoc i funkcje wsparcia, gdy większość użytkowników nie szuka pomocy lub jej nie szuka w aplikacji
- Duże biblioteki z rzadko używanymi funkcjami, takimi jak szczegółowe rejestrowanie błędów i raportowanie
- Określone funkcje płatności lub procesu płatności
- Możliwość oglądania multimediów o bardzo wysokiej rozdzielczości lub funkcji VR/AR
W typowych przypadkach, gdy moduły są stosunkowo małe (poniżej 10 MB) i nie występują żadne awarie sieci ani innych problemów, użytkownicy mogą bardzo szybko pobrać moduł dostępny na żądanie i go używać. Oznacza to, że obsługa zwykle nie różni się tak jak w przypadku modułu, który był dostępny podczas instalacji aplikacji.
Na tej stronie znajdziesz sprawdzone metody, które pomogą Ci:
- Upewnij się, że użytkownicy wiedzą i mają kontrolę nad względnie większymi modułami, które nie ładują się od razu, lub błędami instalacji modułów.
- Dbaj o optymalizację procesu dostarczania modułów, zwłaszcza w sytuacjach, w których można przypuszczać, że użytkownik będzie potrzebować konkretnego modułu.
Po przeczytaniu tego przewodnika możesz wypróbować przykładową aplikację interfejsu Play Core API, aby poznać sprawdzone metody.
Informowanie użytkownika
Poinformuj użytkownika, że funkcja nie jest od razu dostępna. Jeśli użytkownik zdecyduje się pobrać tę funkcję z Google Play, wyświetl postęp pobierania.
Możesz monitorować stan żądania, aby zobaczyć postęp pobierania i stan instalacji. To, jaki interfejs chcesz wyświetlić, może jednak zależeć od rozmiaru pobieranego pliku:
- W przypadku mniejszych modułów (o rozmiarze do 10 MB), które można szybko zainstalować, weź pod uwagę takie wskaźniki jak wskaźniki postępu czy krótki komunikat o pobieraniu treści.
- W przypadku większych modułów, których pobranie i zainstalowanie może potrwać kilka sekund lub dłużej, możesz wyświetlić pasek postępu pobierania i instalacji, taki jak widać na ilustracji 1.
Rysunek 1. Wyświetlanie komunikatu i paska postępu podczas pobierania i instalowania funkcji na żądanie
Grajnie informuj o opóźnieniach i awariach instalacji
Jeśli pobieranie nie działa lub przebiega wolniej, niż się spodziewasz, w jasny i zrozumiały sposób poinformuj użytkownika, co się dzieje i co, jeśli cokolwiek, może zrobić, jak pokazano na rysunkach 2 i 3. Jeśli na przykład monitorujesz stan żądania pobrania i w aplikacji pojawia się błąd API_NOT_AVAILABLE
, poinformuj użytkownika, że jego urządzenie nie obsługuje pobierania na żądanie.
![](https://developer.android.google.cn/static/studio/images/projects/dynamic-delivery/failed_download.png?authuser=9&hl=pl)
Rysunek 2. Poinformuj użytkownika, dlaczego nie można teraz zainstalować funkcji
![](https://developer.android.google.cn/static/studio/images/projects/dynamic-delivery/large_download.png?authuser=9&hl=pl)
Rysunek 3. Wyjaśnij użytkownikowi, dlaczego pobieranie funkcji może trwać dłużej niż oczekiwano.
Pokaż wartość przed prośbą o zgodę w przypadku dużych plików do pobrania
Jeśli moduł na żądanie jest duży (> 150 MB), Google Play wymaga wcześniejszej zgody użytkownika przed jego pobraniem.
Zanim poprosisz o moduł, wyjaśnij jego wartość użytkownikom. Pomóż mu zrozumieć, dlaczego prosisz o takie uprawnienia (tak jak w przypadku prośby o uprawnienia aplikacji). Otwarta komunikacja z użytkownikami zwiększa prawdopodobieństwo, że zaakceptują oni pobrany plik.
Załóżmy np., że tworzysz aplikację e-commerce, a jedna z funkcji umożliwia użytkownikom umieszczanie mebli bezpośrednio w mieszkaniu za pomocą rzeczywistości rozszerzonej (AR). Możesz napisać na przykład: „Czy chcesz zobaczyć swoją nową kanapę w swoim salonie? Zainstaluj gogle rzeczywistości rozszerzonej”.
Pobieranie i instalowanie w tle
Pobieranie i instalacja modułu powinno zawsze odbywać się w tle. Oznacza to, że gdy użytkownik czeka na udostępnienie danej funkcji, pozwól mu na dalsze korzystanie z innych części aplikacji. Gdy funkcja będzie już dostępna, musisz mu udostępnić powiadomienie, które pozwoli mu na korzystanie z niej według własnego uznania.
Jak pokazano na ilustracji 5, użytkownik nadal korzysta z aplikacji, a po zakończeniu instalacji funkcji na żądanie otrzymuje powiadomienie.
Rysunek 5. Zamiast nagle zmieniać kontekst użytkownika po zakończeniu instalacji modułu, powiadom go, że żądana funkcja jest już gotowa.
Gdy moduł będzie gotowy do użycia, powiadom użytkownika i daj mu wybór, czy uruchomić tę funkcję. Wzorzec ten zapewnia użytkownikowi kontekst i kontrolę nad tym, co robi.
W niektórych przypadkach możesz uruchomić funkcję, gdy tylko będzie gotowa. Ponieważ jednak może to zakłócać działanie witryny, zastanów się, czy takie zachowanie jest odpowiednie i oczekiwane.
Zwolnij pamięć urządzenia, gdy moduł nie będzie już potrzebny
Przydatną funkcją wszystkich modułów funkcji jest możliwość ich indywidualnego odinstalowania. Jeśli moduł funkcji nie jest już używany, możesz zmniejszyć rozmiar aplikacji na urządzeniu użytkownika, wysyłając do Google Play prośbę o odinstalowanie tego modułu.
Na przykład aplikacja może mieć rozbudowany proces wdrożenia i być może zawierać treści multimedialne. Gdy użytkownik ukończy proces rejestracji lub będzie aktywny przez określony czas, możesz za pomocą interfejsu Play Feature Delivery API poprosić Google Play o odinstalowanie tylko tego komponentu aplikacji.
Pamiętaj, że później możesz odinstalować moduły dodane podczas pierwszej instalacji aplikacji. Na przykład moduł szkoleniowy dla nowych użytkowników w zakresie korzystania z aplikacji jest przydatny, gdy użytkownicy po raz pierwszy korzystają z aplikacji. Jednak aby zmniejszyć rozmiar aplikacji, możesz go odinstalować po ukończeniu szkolenia.
Wskazówki zaawansowane
Zwykle musisz radzić sobie z sytuacjami, w których użytkownik wyraźnie sygnalizuje chęć skorzystania z funkcji modułów funkcji na żądanie.
Warto jednak przewidzieć, kiedy użytkownik będzie mógł skorzystać z danej funkcji, zanim poinformuje Cię, że chce z niej skorzystać. Jeśli używasz na przykład aplikacji, która umożliwia pobieranie i tworzenie przepisów kulinarnych, poniższe wskazówki opisują, jak zoptymalizować przesyłanie modułu, przewidując potrzeby użytkownika.
Przewiduj, że użytkownik potrzebuje dostępu do danej funkcji w bieżącej sesji. Zastanów się, czy użytkownicy muszą utworzyć konto w aplikacji z przepisami tylko wtedy, gdy chcą tworzyć własne przepisy i udostępniać je społeczności. Utworzenie konta może być sygnałem, że użytkownik będzie chciał dodać własny przepis, aby rozpocząć pobieranie modułu funkcji, jeszcze zanim kliknie „Dodaj przepis”. Aby usprawnić proces pobierania funkcji, możesz zastosować tę metodę do innych ścieżek użytkownika w aplikacji.
Przewiduj, że użytkownik będzie potrzebować danej funkcji w nadchodzącej sesji. Jeśli nie chcesz od razu pobrać i zainstalować modułu na żądanie, możesz odroczyć instalację aplikacji w tle, a Google Play zajmie się pobieraniem i instalowaniem aplikacji za Ciebie. Załóżmy np., że chcesz publikować nowe sezonowe przepisy w aplikacji kulinarne, które nie mają wysokiego priorytetu w bieżącej sesji użytkownika. Gdy aplikacja działa w tle, możesz poprosić Google Play o pobranie i zainstalowanie tych przepisów. Jest to szczególnie przydatne w przypadku większych funkcji (powyżej 10 MB), które nie są potrzebne od razu, ale prawdopodobnie będą potrzebne w przyszłości.
Przewiduj, że użytkownik potrzebuje dostępu do danej funkcji przed instalacją aplikacji. Możesz dodać obsługę przesyłania warunkowego, aby uwzględnić daną funkcję w momencie instalacji w zależności od kraju użytkownika, możliwości sprzętowych urządzenia i poziomu interfejsu API. Możesz np. uwzględnić w modułach warunkowych przepisy, w których używa się wieprzowiny, i pominąć ten moduł w przypadku instalacji aplikacji w regionach, w których głównie unika się dań z wieprzowiną.