Firebase Remote Config zapewnia dużą elastyczność w zakresie tego, jak i kiedy pobierać nowe wartości z serwera i aktywować je w aplikacji. Dzięki temu możesz zapewnić użytkownikom wysoką jakość, kontrolując czas wprowadzania widocznych zmian konfiguracji. Nowe wartości możesz pobierać podczas uruchamiania aplikacji za pomocą fetchAndActivate, a Remote Config w czasie rzeczywistym możesz używać jako metody uzupełniającej do automatycznego pobierania najnowszych wartości parametrów po opublikowaniu nowej wersji Remote Config.
W tym przewodniku omawiamy kilka strategii wczytywania i najważniejsze kwestie, które należy wziąć pod uwagę przy wyborze najlepszej opcji dla aplikacji.
Strategia 1. Pobierz i aktywuj po wczytaniu
W tej strategii aplikacja wywołuje fetchAndActivate przy pierwszym uruchomieniu, aby pobrać nowe wartości z Remote Config i aktywować je, gdy tylko zostaną wczytane. To podejście sprawdza się w przypadku zmian konfiguracji,
które nie powodują drastycznych zmian wizualnych w interfejsie. Unikaj tego podejścia w każdej sytuacji, w której interfejs może się zauważalnie zmienić podczas korzystania z niego przez użytkowników.
Gdy aplikacja wywoła metodę fetchAndActivate, może zacząć nasłuchiwać aktualizacji wartości parametrów w czasie rzeczywistym, wywołując metodę addOnConfigUpdateListener. Ta metoda zaczyna nasłuchiwać aktualizacji wartości parametrów po stronie serwera, pobiera je automatycznie, a następnie wywołuje detektor. Jedną ze strategii jest aktywowanie nowych wartości w detektorze. Jednak, jak wspomniano w przypadku fetchAndActivate,
unikaj natychmiastowej aktywacji w przypadku interfejsów wrażliwych.
Strategia 2. Aktywacja za ekranem wczytywania
Aby rozwiązać potencjalny problem z interfejsem, który może wystąpić w przypadku strategii 1, możesz użyć ekranu wczytywania. Zamiast od razu uruchamiać aplikację, wyświetl ekran wczytywania i wywołaj metodę fetchAndActivate w module obsługi zakończenia. Następnie, zaraz po tym, ponownie używając wywołania zwrotnego lub powiadomienia, zamknij ekran ładowania i pozwól użytkownikowi na interakcję z aplikacją.
Jeśli używasz tej strategii, zalecamy dodanie limitu czasu do ekranu wczytywania. Jednominutowy limit czasu Zdalnej konfiguracji może być zbyt długi, aby zapewnić użytkownikom wysoką jakość uruchamiania aplikacji.
Nasłuchiwanie aktualizacji Remote Config w czasie rzeczywistym przez wywołanie addOnConfigUpdateListener dobrze sprawdza się w przypadku tej strategii. Dodaj detektor, gdy wyświetlany jest ekran wczytywania, a następnie użyj metody activate() w co najmniej jednym miejscu w aplikacji, w którym wartości Remote Config nie spowodują drastycznych zmian wizualnych.
Strategia 3. Wczytywanie nowych wartości przy następnym uruchomieniu
Skuteczną strategią jest wczytywanie nowych wartości konfiguracji, które zostaną aktywowane przy następnym uruchomieniu aplikacji. W tej strategii aplikacja aktywuje pobrane wartości podczas uruchamiania, zanim spróbuje pobrać nowe. Zakłada się, że mogła już pobrać nowe wartości konfiguracji, ale jeszcze ich nie aktywowała. Kolejność działań w przypadku tej strategii:
- Podczas uruchamiania natychmiast aktywuj wcześniej pobrane wartości. Spowoduje to zastosowanie wszystkich wartości pobranych z serwera w poprzedniej sesji i nastąpi niemal natychmiast.
- Gdy użytkownik korzysta z aplikacji, uruchom wywołanie asynchroniczne, aby pobrać nowe wartości zgodnie z domyślnym minimalnym interwałem pobierania, i dodaj detektor aktualizacji konfiguracji w czasie rzeczywistym. Detektor działający w czasie rzeczywistym będzie automatycznie pobierać wszystkie wartości opublikowane na serwerze podczas działania aplikacji. Aktualizacje w czasie rzeczywistym pomijają ustawienie minimalnego odstępu czasu między pobraniami.
- W procedurze obsługi zakończenia lub wywołaniu zwrotnym wywołania pobierania nie rób nic. 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 krótszy. Połączenie strategii pobierania i detektora działającego w
czasie rzeczywistym z wywołaniami activate() w razie potrzeby w cyklu życia
aplikacji zapewnia użytkownikom dostęp do najnowszych wartości z Remote Config podczas
korzystania z aplikacji.
Wczytuję strategie zapobiegawcze
Na podstawie poprzednich sekcji dotyczących strategii wczytywania unikaj tych wzorców użycia:
- Nie aktualizuj ani nie zmieniaj elementów interfejsu, gdy użytkownik go wyświetla lub z nim korzysta, chyba że masz ku temu ważne powody związane z aplikacją lub firmą, np. usunięcie opcji związanych z promocją, która właśnie się zakończyła.
- Nie wysyłaj dużej liczby jednoczesnych żądań pobierania, ponieważ może to spowodować ograniczenie przepustowości aplikacji przez serwer. Jeśli musisz często pobierać aktualizacje, użyj Remote Config w czasie rzeczywistym. Chociaż ryzyko ograniczenia przepustowości jest niskie w większości scenariuszy produkcyjnych, może stanowić problem podczas aktywnego programowania. Remote Config w czasie rzeczywistym jest przeznaczony do tego przypadku użycia. Zapoznaj się ze wskazówkami dotyczącymi ograniczania.
- Nie polegaj na połączeniu sieciowym, aby uzyskać wartości Remote Config. Ustaw domyślne wartości parametrów w aplikacji, aby zawsze działała zgodnie z oczekiwaniami. Możesz okresowo synchronizować domyślne wartości aplikacji i backendu Remote Config, korzystając z pobranych domyślnych wartości szablonu.
Dalsze kroki
Te 3 podstawowe strategie nie stanowią w żaden sposób pełnej listy sposobów wczytywania wartości konfiguracji. W zależności od potrzeb możesz opracować znacznie bardziej zaawansowane strategie.
Więcej informacji o konkretnych wywołaniach służących do pobierania i aktywowania wartości konfiguracji znajdziesz w dokumentacji interfejsu API dla swojej platformy.