Kody kreskowe na telefonie: jak tekst wygrał z GPU
Sobota wieczór. Na telefonie podpisy planet z mojej strony głównej wyglądają jak kody kreskowe, a złote logo jak potłuczone szkło. Na komputerze wszystko gra. Tak zaczęło się jedno z ciekawszych śledztw ostatnich tygodni.
Zaczęło się od zgłoszenia, które zna każdy właściciel strony: "na telefonie coś się rozjechało". Podpisy pod planetami w moim układzie projektów wyglądały jak kody kreskowe, złoty emblemat w środku jak witraż po gradobiciu. Desktop: idealnie. Telefon: chaos. Ta sama strona, ten sam kod.
Dwie poprawki, które niczego nie naprawiły
Pierwszy trop brzmiał rozsądnie: tekstury w nietypowych rozmiarach potrafią gubić jakość przy pomniejszaniu, więc wyłączyłem podejrzany mechanizm. Wdrożone, sprawdzone - dalej paski. Drugi trop brzmiał jeszcze rozsądniej: przenieść grafiki do rozmiarów, które układy graficzne lubią najbardziej. Wdrożone - dalej paski. Dwie porządne, podręcznikowe poprawki, zero efektu.
Przełom przyszedł z obserwacji, nie z dokumentacji: złote logo też się sypało, a ono nie ma ani tekstu, ani cienia, ani niczego "nietypowego". Za to kule planet, rysowane inną techniką, były zawsze czyste. Wspólny mianownik zepsutych elementów okazał się jeden - wszystkie były teksturami wgrywanymi przez konkretny mechanizm, który sterownik graficzny tego telefonu po prostu psuje. Z czarną skrzynką producenta nie wygrasz. Można za to przestać z nią grać.
Najlepsza poprawka: zmiana boiska
Tekst wyjąłem z układu graficznego w całości. Podpisy planet to teraz zwykły tekst HTML, co klatkę ustawiany matematyką kamery 3D - dalej krążą, pochylają się i oddalają razem z planetami, dokładnie jak wcześniej. Emblemat wrócił do sceny inną, sprawdzoną techniką, dzięki czemu dalekie planety znów chowają się za logo. Tekstu w HTML nie zepsuje żaden sterownik na żadnym telefonie - problem nie tyle został naprawiony, co przestał istnieć.
Przy okazji wyszły dwa mniejsze grzechy, oba typowo telefonowe: gwiazdy w tle przeskakiwały przy każdym przewinięciu (pasek adresu przeglądarki chowa się i udaje zmianę rozmiaru okna, a kod losował niebo od nowa) i strona dawała się lekko bujać na boki. Trzy wdrożenia później wszystko stoi, krąży i nie skacze.
Co z tego wynika dla Twojej strony
Raz: strona to żywy system, nie plakat - psuje się na urządzeniach, których nie masz na biurku, więc opieka po wdrożeniu to nie dodatek, tylko połowa roboty. Dwa: gdy dwie dobre poprawki nie działają, nie potrzebujesz trzeciej poprawki, tylko innego pytania. Trzy: całe to śledztwo przeprowadziłem tak, jak pracuję na co dzień - ja i mój system AI w terminalu, hipoteza po hipotezie, wdrożenie po wdrożeniu, w jeden wieczór. Dokładnie tego podejścia uczę na szkoleniu "Jak ja to robię" - z tą różnicą, że u Ciebie budujemy je od zera, na Twoim komputerze.