Dlaczego Facebook dla iOS działa tak opornie?

Wierni użytkownicy iOS-a, pamiętacie te czasy, gdy Facebook dla iPhone'ów działał naprawdę szybko i zwinnie, a prezentowane przez niego treści były przejrzyste i wygodne w odbiorze? Pewnie też pamiętacie, jak z czasem ta płynność zanikała, a aplikacja zaczęła płatać różne figle? Oto wyjaśnienie, dlaczego tak się dzieje.

Dlaczego Facebook dla iOS działa tak opornie?
Krystian Bezdzietny

16.05.2012 | aktual.: 16.05.2012 14:22

Facebook dla platformy iOS ma już za sobą pewną historię. W 2008 roku, jeszcze zanim iPad pojawił się na rynku, opiekę nad nią sprawował Joe Hewitt. Wówczas jego aplikacja działała naprawdę fajnie i szybko, wykorzystując nieco elementów open source z projektu Three20. Gdy jednak Hewitt porzucił prace nad Facebookiem, aplikacja trafiła w ręce grupy deweloperów, którzy napisali ją całkowicie od nowa, tworząc także wersję dla iPada. Wtedy też zaczęły się problemy.

Aplikacja zaczęła działać wolniej. Ładowanie ekranu z powiadomieniami niejednokrotnie zajmowało kilkadziesiąt sekund, a wyświetlanie zdjęć nieadekwatnych do konkretnych użytkowników zdarza się do dziś. Obecnie aplikacja ma około 22 tysiące ocen (bazując na danych z amerykańskiego oddziału App Store'a), z czego 12 tysięcy jest jednogwiazdkowych. Dwugwiazdkowych są niemal trzy tysiące. Użytkownicy są zdenerwowani z wielu powodów:

  • aplikacja jest powolna;
  • aplikacja wyświetla niezgodne z rzeczywistością informacje, objawiające się np. tym, że po uruchomieniu aplikacji świeci się ikona wiadomości, jednak naciśnięcie na nią skutkuje zgaszeniem powiadomienia, ponieważ żadna nowa wiadomość nie nadeszła;
  • aplikacja jest wolniejsza od swojego webowego konkurenta;
  • aplikacja na co dzień raczy użytkowników wieloma** drobnymi błędami** (np. zatrzymuje ładowanie treści);

Co jest powodem występowania tych problemów?

Aplikacja Facebook, wyświetlając profile czy karty grup, pobiera z Sieci paczkę kodu HTML (która, swoją drogą, trochę waży), a wraz z nią grafiki i inne elementy niezbędne do poprawnego wyświetlenia zawartości. Aby jednak zaprezentować to w jednolitej, przystępnej formie, deweloper wykorzystał w Facebooku komponent UIWebView, który pomaga przy ładowaniu elementów. Ten sam komponent używany jest w przeglądarce Safari, z tą różnicą, że jest niemal trzykrotnie szybszy, ponieważ Safari wykorzystuje silnik Nitro JavaScript. Ten właśnie zespół odpowiada niejako za prędkość działania aplikacji, a także wyświetlanie jej zawartości.

  1. Problemy z wyświetlaniem jednolitych komunikatów

Czyli np. wyświetlanie powiadomień o nowej wiadomości, której tak naprawdę nie ma. Za to odpowiada pobieranie danych XML z serwera Facebooka. To wyniki na zapytania aplikacji, nadchodzące z serwera, są źle utworzone, więc ten problem nie leży po stronie dewelopera, a samego Facebooka.

Jak zaradzić tym problemom? Przede wszystkim pozbyć się HTML-a albo znacznie ograniczyć jego użycie.

Dlaczego deweloperzy wcześniej na to nie wpadli? To dobre pytanie, ale jest na nie logiczna odpowiedź. HTML jest łatwiejszy w użyciu przy tworzeniu tzw. płynnej zawartości. Jeżeli deweloperzy mieliby tworzyć aplikację w Objective-C i dostosowywać za jego pomocą każdą linijkę wyświetlaną chociażby na osi czasu, to mieliby przy tym mnóstwo roboty. Dostosowywanie rozmiarów i pozycji wszystkich elementów w Objective-C jest znacznie trudniejsze niż robienie tego w HTML-u, dlatego deweloperzy stosują mniej karkołomne rozwiązanie. Gdyby te wrażliwe elementy aplikacji albo chociaż ich schematy, np. Timeline'a, były napisane w Objective-C, to aplikacja nie dość, że szybciej ładowałaby swoją zawartość, to dodatkowo lepiej reagowałaby na polecenia użytkownika. To nie wszystko.

Po pierwsze, HTML można stosować zarówno w iOS-ie, jak i na Androidzie czy Windows Phonie. To wygodne móc zarządzać jednym kodem na kilku platformach.

Nie wiadomo, kiedy (i czy w ogóle) deweloperzy Facebooka popracują nad swoimi małymi grzeszkami. Szacuje się, że z mobilnego Facebooka korzysta około 500 milionów użytkowników na całym świecie. To ogromna liczba i o ile w przypadku drobnych aplikacji czasem nie ma potrzeby się wysilać, o tyle gdy mówi się o milionach użytkowników, zdecydowanie powinno się coś z tym zrobić. Tym bardziej że oceny aplikacji w App Store mówią same za siebie.

Idealnie funkcjonującą aplikacją wyświetlającą mnóstwo zawartości jest zaktualizowany niedawno Google+. Użytkownicy iOS-a, jeżeli ktoś z Was jeszcze nie miał przyjemności skorzystania z tej aplikacji, to polecam nadrobić stratę, aby się przekonać, jak to powinno wyglądać.

Źródło: mobtest

Wybrane dla Ciebie
Komentarze (0)