Strategie ładowania Firebase Remote Config

Firebase Remote Config zapewnia dużą elastyczność w zakresie sposobu i czasu pobierania nowych wartości z serwera i aktywowania ich w aplikacji, co pozwala zapewnić wysoką jakość obsługi użytkownika końcowego poprzez kontrolowanie czasu wszelkich widocznych zmian konfiguracji. Możesz pobrać nowe wartości przy uruchomieniu aplikacji za pomocą fetchAndActivate() i użyć Zdalnej konfiguracji w czasie rzeczywistym jako metody uzupełniającej, aby automatycznie pobrać najnowsze wartości parametrów po opublikowaniu nowej wersji Zdalnej konfiguracji.

W tym przewodniku omówiono kilka strategii ładowania i omówiono najważniejsze kwestie związane z wyborem najlepszej opcji dla Twojej aplikacji.

Strategia 1: Pobierz i aktywuj po załadowaniu

W tej strategii aplikacja wywołałaby funkcję fetchAndActivate() przy pierwszym uruchomieniu aplikacji w celu pobrania nowych wartości z funkcji Remote Config i aktywowania ich zaraz po zakończeniu ładowania. To proste podejście sprawdza się dobrze w przypadku zmian konfiguracji, które nie powodują żadnych dramatycznych zmian wizualnych w interfejsie użytkownika. Należy tego unikać w każdej sytuacji, w której interfejs użytkownika może się zauważalnie zmienić, gdy użytkownicy są w trakcie jego używania.

Gdy aplikacja wywoła fetchAndActivate() , może rozpocząć nasłuchiwanie aktualizacji wartości parametrów w czasie rzeczywistym, wywołując metodę addOnConfigUpdateListener . Ta metoda rozpoczyna nasłuchiwanie wszelkich aktualizacji wartości parametrów po stronie serwera, pobiera je automatycznie, a następnie wywołuje detektor. Prostą strategią jest aktywowanie nowych wartości w słuchaczu. Jednakże, jak wspomniano w przypadku fetchAndActivate() , należy unikać natychmiastowej aktywacji w przypadku wrażliwych interfejsów użytkownika.

Strategia 2: Aktywuj za ekranem ładowania

Jako remedium na potencjalny problem z interfejsem użytkownika napotkany w strategii 1, możesz polegać na ekranie ładowania. Zamiast od razu uruchamiać aplikację, wyświetl ekran ładowania i wywołaj fetchAndActivate w procedurze obsługi zakończenia. Następnie zaraz po tym – ponownie za pomocą wywołania zwrotnego lub powiadomienia – zamknij ekran ładowania i pozwól użytkownikowi rozpocząć interakcję z Twoją aplikacją.

Jeśli korzystasz z tej strategii, zaleca się dodanie limitu czasu do ekranu ładowania. Jednominutowy limit czasu zdalnej konfiguracji może być zbyt długi, aby użytkownicy mogli uruchamiać aplikacje wysokiej jakości.

Nasłuchiwanie aktualizacji zdalnej konfiguracji w czasie rzeczywistym poprzez wywołanie addOnConfigUpdateListener dobrze sprawdza się w przypadku tej strategii. Dodaj słuchacza po wyświetleniu ekranu ładowania, a następnie użyj activate() w co najmniej jednym punkcie aplikacji, gdzie wartości Zdalnej konfiguracji nie spowodują dramatycznych zmian wizualnych.

Strategia 3: Załaduj nowe wartości przy następnym uruchomieniu

Skuteczną strategią jest załadowanie nowych wartości konfiguracyjnych w celu aktywacji przy następnym uruchomieniu aplikacji. W tej strategii aplikacja aktywuje pobrane wartości podczas uruchamiania, zanim spróbuje pobrać nowe, działając przy założeniu, że mogła już pobrać — ale jeszcze nie aktywować — nowe wartości konfiguracyjne. Kolejność działań w tej strategii jest następująca:

  1. Podczas uruchamiania natychmiast aktywuj wcześniej pobrane wartości. Dotyczy to wszelkich wartości pobranych z serwera w poprzedniej sesji i następuje niemal natychmiast.
  2. Gdy użytkownik wchodzi w interakcję z Twoją aplikacją, rozpocznij wywołanie asynchroniczne, aby pobrać nowe wartości zgodnie z domyślnym minimalnym interwałem pobierania i dodaj odbiornik aktualizacji konfiguracji w czasie rzeczywistym. Słuchacz w czasie rzeczywistym automatycznie pobierze wszelkie wartości opublikowane na serwerze podczas działania aplikacji. Aktualizacje w czasie rzeczywistym omijają ustawienie minimalnego interwału pobierania.
  3. W procedurze obsługi zakończenia lub wywołaniu zwrotnym wywołania pobierania nie rób nic. Twoja aplikacja zachowa pobrane wartości, dopóki nie aktywujesz ich przy następnym uruchomieniu aplikacji.

Dzięki tej strategii czas oczekiwania użytkownika jest znacznie zminimalizowany. Połączenie strategii pobierania i nasłuchiwania w czasie rzeczywistym z wywołaniami activate() zgodnie z potrzebami w cyklu życia aplikacji gwarantuje, że użytkownicy będą mieli najnowsze wartości z funkcji Remote Config podczas interakcji z aplikacją.

Ładowanie anty-strategii

Jak zapewne zrozumiałeś z powyższej dyskusji na temat zalet i wad ładowania, istnieje kilka wzorców użytkowania, których należy unikać.

  • Nie aktualizuj ani nie zmieniaj aspektów interfejsu użytkownika, gdy użytkownik go przegląda lub wchodzi z nim w interakcję — chyba że masz ku temu ważne powody związane z aplikacją lub biznesem, np. usunięcie opcji związanych z właśnie kończącą się promocją.
  • Nie wysyłaj masowej liczby jednoczesnych żądań pobrania, ponieważ może to spowodować ograniczenie przepustowości aplikacji przez serwer. Jeśli chcesz często pobierać aktualizacje, skorzystaj ze zdalnej konfiguracji w czasie rzeczywistym . Chociaż ryzyko ograniczania przepustowości jest niskie w większości scenariuszy produkcyjnych, może stanowić problem podczas aktywnego programowania — a zdalna konfiguracja w czasie rzeczywistym jest przeznaczona do tego przypadku użycia. Zapoznaj się ze wskazówkami dotyczącymi ograniczania przepustowości .
  • Nie polegaj na łączności sieciowej w celu uzyskania wartości Zdalnej konfiguracji. Ustaw domyślne wartości parametrów w aplikacji, aby aplikacja zawsze zachowywała się zgodnie z oczekiwaniami. Możesz okresowo synchronizować domyślne wartości zaplecza aplikacji i zdalnej konfiguracji, korzystając z domyślnych ustawień pobranych szablonów .

Następne kroki

Te trzy podstawowe strategie w żadnym wypadku nie obejmują pełnej listy sposobów ładowania wartości konfiguracyjnych. W zależności od potrzeb możesz opracować znacznie bardziej wyrafinowane strategie.

Sprawdź dokumentację API swojej platformy, aby dowiedzieć się więcej o konkretnych wywołaniach pobierania i aktywowania wartości konfiguracyjnych.