Moonlight na telefonie: instalacja, powiadomienia i czytanie bez zasięgu
Platforma, której sercem jest czytanie webtoonów, przez długi czas nie miała żadnego wsparcia dla telefonu jako aplikacji. Czyta się głównie w ruchu — w autobusie, w kolejce, przed snem — a my oferowaliśmy kartę przeglądarki z paskiem adresu.
To się zmieniło w trzech warstwach, z których każda jest warunkiem następnej.
Instalacja
Moonlight da się dodać do ekranu głównego. Otwiera się wtedy jak aplikacja: pełny ekran, własna ikona, bez paska adresu.
Napisaliśmy to ręcznie, zamiast wziąć gotowy przepis, bo dwie cechy tego serwisu psują gotowce. Nawigacja dociąga treść renderowaną przez serwer, więc strony muszą przychodzić zawsze świeże. Pliki publikujemy przez atomową podmianę katalogu, więc z pamięci urządzenia wolno podawać wyłącznie te, których nazwa niesie odcisk wersji.
Przy okazji znikła stara uciążliwość: karta otwarta przed wdrożeniem prosiła o plik, którego już nie ma, i fragment strony zostawał pusty. Teraz strona przeładowuje się raz sama.
Powiadomienia, które docierają
Tu liczba mówi wszystko: 57 z 61 rodzajów powiadomień trafiało wyłącznie do dzwonka w serwisie. Czyli tylko wtedy, gdy ktoś sam wrócił na stronę i kliknął. Nowy rozdział obserwowanego autora nie docierał nigdzie.
Teraz może dotrzeć na telefon. W ustawieniach rozdzieliliśmy dwie rzeczy, które łatwo pomylić: zgodę przeglądarki, która należy do konkretnego urządzenia, i wybór tematów, który należy do konta. Można więc być zapisanym na telefonie i widzieć na laptopie przycisk „włącz". To działa zgodnie z zamysłem: zgoda dotyczy urządzenia, przy którym siedzisz.
Powiadomienie w serwisie zostaje zawsze. Push jest drogą dodatkową.
Czytanie bez zasięgu
Rozdział można zapisać na urządzeniu i przeczytać w samolocie. Obejmuje to także treści płatne, i tutaj podjęliśmy decyzję, którą warto nazwać wprost: dostęp, który się kończy, ma faktycznie przestać działać. Przy każdym uruchomieniu aplikacja pyta serwer, które z zapisanych rozdziałów wolno jeszcze czytać, i kasuje resztę. Bez połączenia rozstrzyga zapisany termin ważności.
Strony animowane są jawnie pomijane, z komunikatem. Scena to działający program z dźwiękiem, a obiecanie jej offline dałoby puste płótno zamiast animacji.
Dwie rzeczy znalezione po drodze
Przy okazji wyszło, że powiadomienia o odpowiedzi w obserwowanym wątku i o wzmiance na forum nie docierały w ogóle — kod wołał adresy stron, które przestały istnieć przy przenoszeniu forum, a całe zadanie wywalało się po cichu w tle.
Druga rzecz dotyczyła autorów z dużą publicznością. Sześć miejsc w kodzie po wysłaniu powiadomienia szukało go z powrotem w bazie, osobnym zapytaniem dla każdego odbiorcy. Przy dwóch tysiącach obserwujących to dwa tysiące dodatkowych zapytań przy jednej publikacji. Teraz publikacja rozdziału nie zamula serwisu nikomu.
Uwaga: powiadomienia push wymagają jeszcze konfiguracji kluczy po naszej stronie. Do tego czasu panel mówi wprost, że push nie jest gotowy, zamiast udawać, że działa.