Mając do czynienia z prostym kalkulatorem, kalendarzem lub aplikacją typu „todo list” może i nie zobaczymy różnicy, ale istnieją zasadnicze różnice pomiędzy aplikacjami internetowymi a natywnymi aplikacjami mobilnymi przeznaczonymi na poszczególne systemy operacyjne.

Jak zwykle w tego typu rozważaniach wszystko ma swoje plusy i minusy. Postaram się przybliżyć cechy każdego rozwiązania w kilku płaszczyznach oraz podpowiedzieć kiedy decydować się na aplikację webową a kiedy na typową apkę pod Androida czy iOS.

Pokażę też rozwiązanie, które łączy zalety obu rozwiązań w zamian za brak niektórych funkcji bez których można się jakoś obejść.

Technologia

Aplikacje webowe są najczęściej tworzone za pomocą HTML, CSS, JavaScript te bardziej rozbudowane wykorzystują pewnie PHP z MySQL. Używa się zatem typowych narzędzi umożliwiających stworzenie serwisu internetowego. Jedyne czego programista potrzebuje to notatnik. Kod oczywiście interpretowany jest przez przeglądarkę internetową. Każdy przyzna że takie pisanie jest przyjemne – od razu widać efekty pracy, aplikację udostępnia się momentalnie i wszyscy są szczęśliwi.

Aplikacje natywne tworzymy najczęściej w SDK. Praca nad projektami już jest typowym programowaniem jak to ma miejsce przy aplikacjach okienkowych pod Windows. Nie chcę zbytnio generalizować, ale praca nad natywną aplikacją pod Androida zwykle zabierze więcej czasu, jest bardziej wymagająca od programisty – po prostu cały cykl produkcji jest bardziej złożony.

Dostępność

Aplikacje internetowe są dostępne jak sama nazwa wskazuje w sieci WWW a to znaczy, że wystarczy wpisać w przeglądarce odpowiedni adres i już bez instalowania czegokolwiek możemy korzystać z ich dobrodziejstw. Zupełnie nieważne jest to jakim dysponujemy sprzętem czy systemem operacyjnym. Aplikacja internetowa zadziała wszędzie tam gdzie można włączyć np. YouTube i to jest fajne.

Aplikacje natywne – znowu jak sama nazwa wskazuje – są dedykowane pod specyficzny system operacyjny. Aby skorzystać z aplikacji natywnej trzeba ją zainstalować no i posiadać odpowiedni sprzęt z danym systemem operacyjnym.

Możliwości

Aplikacje internetowe są ograniczone do możliwości przeglądarki. Mimo, że teraz przeglądarki wspierają wiele nowych technologii, które mają pomagać programistom przy bardziej skomplikowanych zadaniach, prędzej czy później z tymi ograniczeniami trzeba się będzie zmierzyć. O jakie ograniczenia chodzi? Nie mamy np. bezpośredniego dostępu do możliwości sprzętowych urządzenia takich jak kamera, akcelerometr, czy GPS. Oczywiście są sposoby na ominięcie tego, no ale już trzeba kombinować.

Przy aplikacjach natywnych tego problemu nie ma. Mamy bezpośredni dostęp do możliwości urządzenia jakie oferuje system operacyjny. Aplikacje natywne (znowu nie chcę generalizować) oferują zwykle więcej i to bez kombinowania. Skorzystanie z  aparatu, mikrofonu czy GPS nie będzie problemem a zintegrowany system płatności pomoże nam w pobieraniu opłat od użytkownika za sprawą jednego kliknięcia.

Cena

Stworzenie aplikacji internetowej jest tańsze bo jest proste i stosunkowo szybkie. Mamy też większą konkurencję rynku stąd ceny często schodzą do kilku tysięcy złotych za proste aplikacje.

Aplikacje natywne muszą być pisane przez w miarę ogarniętych programistów. Tutaj już nie wystarczy byle tutorial, no chyba że chcemy stworzyć sobie Hello World lub bardzo prostą grę. Ceny za aplikacje pisane pod zamówienie to zwykle kilkanaście lub kilkadziesiąt tysięcy złotych.

Czy jest coś pomiędzy aplikacją internetową i mobilną?

Istnieją dwa rozwiązania, (a w zasadzie dwa i pół), które próbują łączyć powszechność internetu i wygodę jaką można zaoferować użytkownikom mobilnych systemów operacyjnych.

Pierwszy z nich to aplikacje mobilne – hybrydowe. Są to aplikacje mobilne napisane przy pomocy frameworka potrafiącego objąć aplikację internetową w szkielet aplikacji mobilnej. Te rozwiązania to między innymi Cordova (wykorzystywana w PhoneGap, PhoneGap Build), Ionic lub chociażby React Native. Zobacz jak wygląda projektowanie aplikacji mobilnej w PhoneGap.

Drugim rozwiązaniem jest Progressive Web Apps. Technologia ta umożliwia budowanie standardowych aplikacji internetowych, których nie trzeba instalować a mimo to da się osiągnąć uczucie jakby się korzystało z aplikacji mobilnej. Jest to mozliwe za pomocą technologii HTML5 i Service  Workera, który jest wspierany w nowoczesnych przeglądarkach (Chrome, Safari, Firefox i chyba Opera).

Trzecie rozwiazanie to strony AMP. Jeżeli skupiamy się głównie na treściach statycznych rozwiązanie przyspieszonych stron mobilnych – AMP prawdopodobnie sprosta większości naszym oczekiwaniom.

Stosując odpowiednie systemy projektowe czyli frameworki typu Material Design – aplikacji takich niemal nie można odróżnić od ich natywnych braci.

Podsumowanie

Jeżeli interesuje cię praktyczne wykorzystanie aplikacji mobilnych w biznesie czytaj więcej na temat zalet i wad aplikacji mobilnych.

Zacytuję jeszcze na koniec fajne zdanie z książki Android – Tworzenie aplikacji Jonathana Starka i Briana Jepsona:


Jeśli daną aplikację możesz zbudować w oparciu o HTML, CSS i JavaScript, najprawdopodobniej tak właśnie powinieneś zrobić.

Fajny skrót myślowy, bowiem zawsze wtedy kiedy możliwości typowo przeglądarkowe nam wystarczą, aplikacje internetowe będą tańsze, szybciej będzie trwało ich pisanie no i nie trzeba ich instalować.

Pewnych rzeczy nie przeskoczymy, jeżeli tworzymy grę 3D, czy aplikację z ciekawymi funkcjami wykorzystującą kamerę aplikacja natywna będzie jedynym rozwiązaniem.

Źródła

Stark J., Jepson B., Android. Tworzenie aplikacji w oparciu o HTML, CSS i JavaScript, wyd. Helion 2013 r.

Oceń artykuł na temat: Aplikacja internetowa czy mobilna?
Średnia : 4.5 , Maksymalnie : 5 , Głosów : 30