Pobieranie listy usług w tle
Po uruchomieniu aplikacji mamy oczekiwanie na pobranie informacji o środkach na potrzeby ekranu głównego.
Przy przechodzeniu do usług znów jest oczekiwanie bo aplikacja pobiera listę usług. Może zamiast tego zrobić pobieranie tych danych w tle po pobraniu danych ekranu głównego?
Do tego jakiś znacznik ważności listy i przechowywanie w pamięci podręcznej. Skoro zapytanie i tak leci do serwera to jak ten dostanie info "mam listę z 2017.10.10 13:23" to może odpowiedzieć "no to masz najnowszą" i nie trzeba czekać na dane.
11-10-2017 w Pomysły
1
Otwarty
2
Realizowany
3
Zrealizowany
Czyli gdy już załaduje się i wyświetli ekran główny to w tle pobierają się od razu dane dot. usług, aby można było szybciej je wyświetlić. Dobrze zrozumiałem?
Co do znacznika danych to czasami będzie tak, że lista pobrana o 11:31 zawiera dane z 11:00 (na niektórych systemach nie będzie można wymusić częstszego odświeżenia danych). Czy dobrze rozumiem, że wtedy appka powinna wyświetlać coś w stylu "Stan środków z 11:00. Jeszcze nie ma nowszych danych." ?
A czy naprawdę dziś czas oczekiwania jest długi?
Na ile potrafię analizować apkę od zaplecza obecnie długi czas ładowania to chyba wyniki "decyzji designu" by był efekt "wow" a nie konieczność.
@Artur no właśnie chodzi o to by w tle pobrał do szybszego wyświetlenia.
@Piotrekk85 nie jest długi ale aplikacja sprawia wrażenie "ociężałej" bo gdzie nie klikniesz to "proszę czekać". Możliwe, że ktoś miał taki pomysł projektowy ale jak dla mnie nie wygląda to dobrze.
Ok, pewnie trzeba byłoby sprawdzić jak często używane są inne - poza stroną główną - zakładki. Niemniej wydaje się sensowne i głosuję na tak. A wyświetlanie czasu aktualizacji danych o dostępnych środkach? Napiszesz coś więcej jak mogłoby to Twoim zdaniem wyglądać?
Czas aktualizacji środków nie ma nic do tego. Kwestia z czasem odnosiła się bardziej do komunikacji aplikacja<>serwer przy pobieraniu listy aktualnych usług.
Status zmieniony na: Sprawdzany
Status zmieniony na: Realizowany
Pomysł został przeanalizowany i jego prostota bardzo się spodobała 🙂 Jest jednak spora przeszkoda… Zwiększanie liczby pobieranych danych, nawet w tle, to dodatkowe obciążenie dla systemów, z których pobierane są dane. Obecny czas pobierania danych wynika nie z tego, że jedna aplikacja pobiera paczki z danymi tylko z tego, że cały czas mnóstwo aplikacji korzysta z tych systemów, czyli to nie jest tak, że systemy są obciążane tylko podczas startu, ale są cały czas obciążane.
Gdybyśmy dodali dodatkowe dane do pobierania w tle to wydłużylibyśmy czasy ładowania danych na ekranie początkowym. No i o ile wszyscy korzystają z ekranu głównego to zakładki są używane sporadycznie, więc chyba lepiej nie wydłużać ładowania czegoś, z czego korzystają wszyscy, aby przyśpieszyć ładowanie opcji, z których korzysta niewiele osób?
Dobra wiadomość jest taka, że zespół aplikacji bardzo mocno pracuje nad innymi zmianami, które przyśpieszą ładowanie ekranu początkowego. Zmiany będą stopniowe, więc wielkiego przyśpieszenia nie odczujemy od razu, ale wraz z każdą kolejną wersją appki czasy ładowania powinny być krótsze, więc cel pomysłu – będzie zrealizowany. Dodatkowo, zespół aplikacji rozpoczął prace nad możliwością sprawdzenia w appce daty i godziny aktualizacji danych i wstępne plany zakładają pojawienie się tej funkcji za kilka miesięcy 🙂
@Artur Jak często usługi się zmieniają?
Aplikacja wysyła zapytanie do serwera o listę usług. Dostaje listę ze znacznikiem "wersji" listy (niech to będzie 201711173). Zapamiętuje to w pamięci podręcznej na urządzeniu.
Następnym razem aplikacja widzi, że w pamięci podręcznej ma wersję 201711173. Wysyła info do serwera "daj mi listę usług, mam 201711173". Serwer odpowiada "lista aktualna, cześć" jak nie ma zmian lub przesyła całą listę jak są zmiany.
Poza tym ładowanie listy usług dopiero po obsłużeniu ekranu początkowego. Użytkownik odpala aplikację ładuje mu się ekran początkowy z danymi. Radośnie (lub nie) przegląda sobie co tam ma za info. W tym czasie aplikacja w tle może zaktualizować listę usług. W końcu ile to transferu będzie? Kilka(naście) KB spakowanych danych.
No i można wtedy rozdzielić listę na dwie części: lista usług + lista włączonych usług.
Ile ruchu w jednej minucie ;D
Status zmieniony na: Wdrożony
Małe zawirowania techniczne ze statusami, przepraszam 😄 @TJZS, dzięki wielkie za pomysł. Nie można było wykorzystać go w 100% w ten sposób, czyli od razu wysyłać zapytania do wszystkich serwisów, ze względu na ich obciążenie, ale taka "strategia" pobierania danych, nie tylko w usługach będzie wykorzystywana w aplikacji już od najbliższej wersji (zapewne pojawi się pod koniec lutego/na początku marca). Spowoduje to poprawienie szybkości pobierania danych. Może nie będzie to super duża zmiana, ale na pewno będzie choć trochę szybciej.