Załamana apka

Dlaczego aplikacje mobilne nagle kończą pracę? Czy winien jest system operacyjny, narzędzia deweloperskie, czy może sami twórcy aplikacji?

Badania przeprowadzone przez firmę Crittercism, specjalizującą się w ustalaniu przyczyn krytycznych błędów w aplikacjach, nie budzą wątpliwości: statystycznie częstotliwość załamania aplikacji zależy od systemu operacyjnego, w którym pracuje program. Spośród wszystkich 214 mln uruchomień rejestrowanych przez aplikacje od listopada 2011 r. prawdopodobieństwo załamania aplikacji w systemie Apple iOS jest znacznie wyższe w porównaniu z Androidem. To różnica statystycznie istotna we wszystkich trzech kwartylach.

W górnym kwartylu prawdopodobieństwo awarii aplikacji podczas uruchamiania w systemie Android wynosiło 0,15%, w iOS 0,51%, ale dla pierwszych 25% wynosi aż 2,97% dla Androida i aż 3,66% dla iOS. Nie oznacza to, że przyczyna leży w systemie operacyjnym czy w API producenta. Oprócz niedbałości programistów, problem może wynikać z mnogości wersji obu najważniejszych systemów, zmienności sprzętu, z aktualizacji systemu i aplikacji czy z zależności związanych z wykorzystywaniem kodu od różnych dostawców.

Wiele wersji systemu

Jedną z przyczyn załamań aplikacji jest szybki rozwój mobilnych systemów operacyjnych. Przed deweloperami stoi zadanie związane z mnogością wersji platformy, na której muszą przeprowadzić testy. Według firmy Crittercism, są 33 wersje Androida, na których notowano załamania aplikacji, w systemie Apple iOS tych wersji zanotowano 23.

Najwięcej aplikacji załamuje się w iOS 5.01, czym należy obarczyć zmiany w iOS 5.01. Ta wersja pojawiła się w marcu 2012 r., a w dwa miesiące później gotowa była edycja 5.5 - dostawcy aplikacji nie zdążyli dopracować oprogramowania. Android Ice Cream Sandwich nie jest chętnie używany. Można oczekiwać wzrostu liczby problemów z aplikacjami w miarę wzrostu popularności nowej wersji systemu od Google.

Brak aktualizacji

Większość awarii aplikacji w iOS dotyczy najnowszych wersji systemu, ale w wykazie znajdują się także inne wersje. Wydanie iOS 4.2.10 było odpowiedzialne za 12,64% awarii, iOS 4.3.3 za 10,66%, w starszej wersji iOS 4.1 zanotowano 8,24% ogółu problemów.

System ma sprawnie działający mechanizm aktualizacji aplikacji, dzięki czemu deweloperzy mogą dostarczyć nowe wersje i na większości urządzeń z Androidem zostaną one wprowadzone automatycznie. W przypadku iOS na opublikowanie aktualizacji trzeba poczekać, gdyż aplikacje podlegają akceptacji przed wprowadzeniem do sklepu App Store.

Problemy sprzętowe i programowe

Przyczynami załamywania się aplikacji mogą być problemy związane ze sprzętem. Wiele programów korzysta z urządzeń lokalizacyjnych, np. GPS czy informacji o sieci komórkowej, a także kamer i aparatów. Zmiana związana z nową wersją firmware'u dla tych urządzeń lub modyfikacje w API systemu operacyjnego smartfona mogą skutkować niestabilnością aplikacji przy odwoływaniu się do nich. Każdej wersji systemu operacyjnego muszą towarzyszyć testy zgodności przeprowadzane przez deweloperów.

Zmiany API lub niektórych właściwości systemu operacyjnego skutkują koniecznością przepisania części kodu. To można obserwować w przypadku iOS dla najnowszych tabletów firmy Apple, które mają inne proporcje ekranu. Podobne zmiany związane z obsługą peryferiów obserwowaliśmy przy starszych wersjach systemu Symbian OS.

Inne problemy dotyczą zużycia pamięci. W miarę wzrostu wykorzystania pamięci pojawiają się problemy, aż do niestabilności systemu lub aplikacji włącznie. Te typowe błędy programistyczne nie zawsze są poprawiane.

Zmiana połączenia

Przyczyną awarii aplikacji są problemy z komunikacją. Jeśli aplikacja nie ma obsługi pracy bez połączenia internetowego, uruchomienie jej przy nieaktywnym połączeniu może powodować niestabilność pracy. Gorsze są przełączenia między siecią komórkową a lokalną bezprzewodową siecią WLAN, gdyż do obsługi połączeń stosuje się inne urządzenia w systemie operacyjnym, przy przełączeniach następuje zmiana adresacji IP i routingu.

Przy zmianie rodzaju połączenia część pakietów zostanie utracona, więc komunikacja aplikacji z serwerem usługi na zewnątrz będzie naruszona. Przy dekodowaniu informacji przesyłanych tą drogą mogą pojawiać się zakłócenia. Problem ten w mniejszym stopniu dotyczy komputerów przenośnych, w których przełączenie między interfejsami sieciowymi występuje rzadko, a przełączenie między punktami dostępowymi sieci WLAN można zrealizować bez zakłóceń. Jeśli aplikacja komunikująca się z zewnętrznym serwisem nie uwzględnia specyfiki pracy interfejsów sieciowych w środowisku smartfona, awarie oprogramowania są bardzo prawdopodobne.

Moduły firm trzecich

Przyczyną załamań aplikacji jest często oprogramowanie innych producentów. Dodatkowe moduły mogą służyć do analiz użycia oprogramowania, do zarządzania zakupami realizowanymi przez nie, a także mogą wyświetlać reklamy. Ostatnie zastosowanie przeważa w darmowych aplikacjach. Narzędzie wymaga od programistów rygorystycznego przestrzegania standardów. Jeśli wystąpią niezgodności, wynikowa aplikacja może być niestabilna. Niekiedy jakość kodu narzędzi oferowanych przez sieci reklamowe jest niewystarczająca, dlatego utrudnia napisanie stabilnej aplikacji. Awarie spowodowane błędami w module reklamowym występowały w platformie Google Android.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200