Dla developerów‎ > ‎Aktualności‎ > ‎

Wybory mobilnego developera

opublikowane: 11 kwi 2014, 23:01 przez Przemysław Hojnacki   [ zaktualizowane 12 kwi 2014, 00:27 ]

  

Mobilna aplikacja przeglądarkowa


 W specyfikacji wymagań napisano „Aplikacja mobilna mającą działać na wszystkich dostępnych systemach operacyjnych”. Developer dostawał gorączki (ma stać się człowiekiem-orkiestrą):
  1. Android – napisze to w Javie
  2. iOS – musi znać Objective C,
  3. Windows Phone – jeszcze .NET,
  • przydałyby się biblioteki związane z implementacją w tych systemach

    Obsłuży wtedy tylko 3 najbardziej popularne systemy. Do tego musi złamać zasadę DRY, bo interfejs użytkownika napisze 3 razy ten sam. A może wynajmie kilku specjalistów?

    Jak spełnić opisywane wymaganie pisząc kod jeden raz pod wszystkie możliwe systemy?


Popularne mobilne systemy operacyjne

    Każdy przyzwoity system operacyjny jest wyposażony w przeglądarkę internetową współpracującą ze standardem HTML5. Można więc uruchamiać odchudzone i dostosowane do małych ekranów aplikacje przeglądarkowe. Takie mobilne aplikacje przybierają ostatnio na znaczeniu. Nie trzeba niczego instalować, aktualizować, a przede wszystkim działają one praktycznie na wszystkich systemach operacyjnych. Do tego w specyfikacji HTML5 dostajemy dostęp do aparatu fotograficznego urządzenialokalizacji geograficznej użytkownika (Geolocation API) oraz tzw. Web Storage dzięki któremu przeglądarka może zapisywać dane na urządzeniu np. w trybie offline.

    Aplikację przeglądarkową można dodać do ekranu głównego aplikacji. Od tego momentu odczucie w korzystaniu z niej nie różni się zasadniczo od zwykłej instalowanej w systemie aplikacji:

Dodawanie skrótu do URL na iOS


Dodawanie skrótu do URL na Android


Próby implementacji aplikacji przeglądarkowych na urządzenia mobilne podejmowali między innymi Facebook i LinkedIn. Skoro rozwiązanie jest takie uniwersalne dlaczego koniec końców autorzy stworzyli aplikacje natywne?

Gdy stajemy przed takim wyborem warto zastanowić się nad następującymi zagadnieniami:


Czy aplikacja:

  Natywna  

  Mobilna aplikacja przeglądrkowa  

...odwołuje się do wielu zasobów sprzętowych urządzenia mobilnego?

Nieograniczony dostęp do elementów: akcelerometr, czujnik położenia, czujnik oświetlenia, czujnik zbliżeniowy, aparat, GPS, telefon, karta pamięci, książka adresowa, SMS, wielowątkowość, powiadomienia, kalendarz.

Dostęp do aparatu, lokalizacji geograficznej, Web Storage (opcja zapisu danych przez przeglądarkę gdyby znikło połączenie z siecią.

...będzie miała wielu użytkowników jednocześnie?

Z racji tego, że każdy klient ma swoją niezależną aplikację na komórce / tablecie problem nie istnieje

Nawigacja po aplikacji generuje ruch po stronie serwera – w przypadku rosnącej liczby użytkowników trzeba pomyśleć o klastrowaniu

...wymaga krótkiego czasu pierwszego dostępu?

Ten czas to znalezienie, pobranie i uruchomienie aplikacji.

Krótszy czas pierwszego dostępu – uruchomienie przeglądarki i wpisanie URL strony mobilnej (opcjonalnie utworzenie skrótu na ekranie głównym)

...powinna być dystrybuowana w sklepie (Google Play / AppStore) np. w celach zarobkowych.

Opcja sklepu dostępna.

Brak centralnego punktu zakupu aplikacji. Dostarczamy usługę. 

Alternatywą jest aplikacja hybrydowa, która umożliwi udostępnienie w sklepie (wyjaśnione później)

...będzie używana przez klientów ze stałym dostępem do internetu

Możliwe przeglądanie zawartości wcześniej pobranej offline.

Trzeba się liczyć z koniecznością posiadania dostępu do Internetu. 

Możliwy jednak jest zapis do Web Storage (zapis offline -> później synchronizacja).

...będzie oceniana ze względu na szybkość działania (miodność)

Interfejs użytkownika jest natywny - generowany w komórce / tablecie. Maksymalna wydajność.

UI jest podawane po każdym żądaniu przeglądarki użytkownika przez zdalny serwer. Istnieje narzut sieciowy.

...będzie wymagała powiadomień (działanie w tle)

Dostępne

Server Push dostępny ale tylko w oknie przeglądarki. Poza przeglądarką aby uzyskać powiadomienie systemowe trzeba będzie doinstalować aplikację np. Pushover.


    Rzeczywistości nie jest zero-jedynkowa. Oprócz wyboru pomiędzy dwoma wariantami są jeszcze hybrydowe aplikacje. Pomysł polega na osadzeniu kontentu webowego w aplikacji natywnej. Korzystamy wówczas z dobrodziejstw natywnych dodatkowo mając dostęp do kontentu webowego. Specjaliści szacują że do 2015 roku 80% aplikacji będzie hybrydowa

    Jeśli planujesz implementację aplikacji przeglądarkowej zainwestuj w mobilną webową aplikację już teraz. Utrzymywanie oddzielnie części webowej i mobilnej będzie kosztowne gdy ta mobilna powstanie długo po webowej. Zaprojektuj komponenty tak aby były przydatne do wielokrotnego użycia, weź pod uwagę skalowalność interfejsu użytkownika.


Przykłady implementacji:

    Jeżeli zależy Ci na szybkiej implementacji aplikacji mobilnej polecam skorzystać z gotowych frameworków do jej zbudowania. Może to być Sencha Touch, Kendo UI czy też szkielet, który ja wybrałem - Vaadin TouchKit z racji jego prostoty.

    Przykładowa aplikacja oparta na TouchKit'ie - Parking Demo zawiera zaimplementowane elementy takie jak położenie geograficzne klienta, obsługa aparatu fotograficznego, tryb offline, mapa, wykresy.


Comments