Standardy i technologie wykorzystywane w mobilnych aplikacjach hybrydowych.
Aplikacje natywne napisane są w języku, na którym bazuje system operacyjny danego smartfona lub tabletu. Aplikacje natywne są szybkie i płynne, dają większą przyjemność użytkowania oraz mają dostęp do wszystkich funkcji samego. Paradoksalnie minus aplikacji natywnych wynika z tego samego, na czym zasadza się ich przewaga – każdy system
operacyjny wymaga napisania odrębnego kodu
Aplikacjami webowymi nazywa się strony internetowe zbudowane w języku HTML 5, CSS3 etc., które swoim wyglądem przypominają aplikacje mobilne. Największą zaletą aplikacji webowych jest to, że są one dostępne dla wszystkich urządzeń mobilnych po napisaniu w jednym języku programowania. Mają jednak wiele ograniczeń. Nie mają dostępu do funkcji urządzenia, na którym działają, a więc nie mogą w pełni wykorzystać jego technologicznych możliwości. Aplikacja webowa nie pozwala na skorzystanie w aplikacji z: aparatu (a więc i z kamery), mikrofonu, GPS, żyroskopu, akcelerometru czy kompasu. Taka aplikacja w ogóle nie zadziała, gdy nie ma dostępu do internetu.
Aplikacje hybrydowe, jak sama nazwa wskazuje, są swoistym połączeniem (aplikacji natywnych oraz aplikacji webowych). Często mylone są z aplikacjami natywnymi, jednak różnią się od nich zasadniczo. Hybrydy budowane są z wykorzystaniem technologii webowych, lecz ubrane są w specyficzną dla danego oprogramowania szatę, dlatego
wyglądem przypominają aplikacje natywne. Poza tym, tak samo jak natywne, dystrybuowane są przez sklepy z aplikacjami, takie jak App Store czy Google Play (dawniej Android
Market). Aplikacje hybrydowe, jako, że po części napisane są w języku natywnym, a po części w webowym (wspomniane wcześniej HTML 5 czy CSS3), mają dostęp do pewnych funkcji urządzeń mobilnych, lecz często w ograniczonym zakresie. Nawet, jeśli aplikacja hybrydowa umożliwia wykorzystanie takich technologii jak GPS, akcelerometr, żyroskop czy aparat, to często działa to o wiele wolniej i mniej płynnie.
PhoneGap
PhoneGap to framework pozwalający aplikacje webowe napisane za pomocą HTML'a i JavaScriptu osadzić wewnątrz platformy mobilnej. Dzięki dołączonej bibliotece JS
otrzymujemy dostęp do natywnych funkcjonalności telefonu tj. geolokacji, akcelerometru, aparatu fotograficznego, wibracji oraz orientacji telefonu czy gestów i multitouch.
Ponieważ aplikacje tworzone przez nas są w istocie web aplikacjami musimy pogodzić się z pewnymi ograniczeniami. Po pierwsze wygląd naszej aplikacji nie będzie przypominał wyglądu aplikacji natywnych. Dodatkowo nie mamy możliwości użycia natywnych kontrolek, a także dodatkowych funkcjonalności platformy (np. animacji 3d). Wygląd i działanie naszej aplikacji ogranicza się do tego, co oferuje nam HTML i JS.
Wady i zalety PhoneGap
Niewątpliwą zaletą PhoneGap jest możliwość tworzenia aplikacji za pomocą HTML'a, CSS'a i JavaScript'u. Dzięki temu aplikacje są wieloplatformowe i jednocześnie nie ma potrzeby uczenia się architektury i API poszczególnych platform. Dodatkowo nasze aplikacje możemy testować w normalnej przeglądarce, bez potrzeby uruchamiania emulatora. Co ważne
możliwość uruchomienia naszej aplikacji poza platformą pozwala nam na stworzenie zautomatyzowanych testów.
Do wad tego frameworka należy zaliczyć brak natywnego wyglądu naszych aplikacji, a także natywnych kontrolek, przez co nasze listy wyboru i inne pola będą wyglądały jak w
przeglądarce, a nie w aplikacjach natywnych. Kolejną wadą tej platformy jest dość słaba i często nieaktualna dokumentacja.