Rynek aplikacji mobilnych - punkt widzenia programisty
1. W czym problem?
Większość firm zajmujących się tworzeniem oprogramowania na własny użytek, bądź na potrzeby klientów zewnętrznych stanęło już, lub stanie w najbliższym czasie, przez wyzwaniem związanym z rozpoczęciem dostarczania aplikacji mobilnych.
Dość łatwo można określić, jaki efekt finalny firma chciałaby osiągnąć i jaka powinna być przyszła aplikacja działająca na urządzeniach przenośnych - szybka, wydajna, responsywna, działająca na wielu urządzeniach mobilnych i różnych platformach. Cel można jeszcze rozbudować o komunikację z bazami danych, integrację z desktopowymi rozwiązaniami lub innymi elementami zgodnie z wymogami własnymi lub klienta. Znacznie gorzej jest z realizacją takiego celu. Tutaj trzeba wziąć pod uwagę koszty, zasoby oraz czas jakim dysponuje firma. Okazuje się także, że ciężko jest jednoznacznie wskazać najlepszy sposób (metodę) tworzenia aplikacji mobilnych. Jest ich kilka, a każda ma swoje plusy i minusy, korzyści oraz wady.
2. Jak wygląda rynek aplikacji mobilnych (z punktu widzenia programisty)
Obecnie możemy wyróżnić 3 główne metody tworzenia aplikacji mobilnych
- tworzenie webowych aplikacji mobilnych,
- tworzenie aplikacji natywnych, korzystając zwykle z narzędzi dostarczanych przez producenta platformy, takich jak Xcode dla iOS
- tworzenie aplikacji hybrydowych
Każde z tych podejść ma swoje wady i zalety.
Webowe aplikacje mobilne, korzystające z technologii HTML5, Javascript i CSS są najprostsze w tworzeniu (analogicznie do tworzenia standardowych aplikacji Webowych) oraz łatwe w dystrybucji - aplikacja po wdrożeniu na serwer jest uruchamiana przez użytkownika w przeglądarce WWW działającej na urządzeniu docelowym. Webowe aplikacje mobilne działają na różnych platformach systemowych i mogą korzystać z pełnej funkcjonalności przeglądarek WWW zoptymalizowanych dla każdej z nich. Mają jednak także i wady, a wśród nich jedną z większych jest brak możliwości ich rozpowszechniana w ramach sklepów application store (jak AppStore i Google Play), co wiąże się ze znacznymi utrudnieniami związanymi z ich promocją oraz dostępnością dla wielu użytkowników. Dodatkowo aby osiągnąć szybkość i wydajność aplikacji natywnych konieczne jest wykorzystanie wiedzy eksperckiej wspartej dużym doświadczeniem programistów. Z drugiej strony aplikacje natywne są bardziej kosztowne w produkcji, wymagają większej liczby zespołów (przeważnie jeden zespół na jedną platformę mobilną) i równie zaawansowanych kompetencji programistów w zespole.
Aplikacje hybrydowe (serwisy webowe zapakowane w natywną aplikację) często uważane za kompromisowe rozwiązanie, pozwalają zredukować koszty produkcji aplikacji mobilnych. Wymagają jednak od programistów zastosowania specjalnych „tricków” umożliwiających uzyskanie poziomu wydajności i bezpieczeństwa zbliżonego do aplikacji natywnych (podobnie jak w przypadku Webowych aplikacji mobilnych). Aplikacje hybrydowe są w większym stopniu narażone na ataki hackerskie niż aplikacje natywne (wykorzystują bowiem standardowe technologie Webowe).
Nie można jednoznacznie wskazać najlepszej metody – każdy programista / zespół musi sam określić, która będzie najbardziej opłacalna w jego przypadku, przy uwzględnieniu umiejętności i doświadczenia programistycznego, które posiada. Każda z przytoczonych metod ma swoich zwolenników i przeciwników.
- Aplikacji natywnych kosztem Webowych i hybrydowych broni Mark Zuckerberg (CEO Facebook'a) mówiąc, iż jego największym błędem było zbytnie zaufanie możliwościom HTML5, a nie na natywnym aplikacjom (więcej).
- Z drugiej strony firma Gartner w opublikowanej analizie wskazuje, iż w 2016 roku aplikacje hybrydowe stanowić będą ponad 50% wdrażanych aplikacji (więcej).
- Zwolennicy HTML5 przekonują do swoich racji, argumentując że technologia ta jest w pełni dojrzała do zastosowań mobilnych a problem Facebook'a polegał na nieumiejętnym jej wykorzystaniu.
Prawdopodobnie wszystkim stronom można przyznać rację. W różnych przypadkach sprawdzają się różne rozwiązania – wszystko zależy od tego, co jesteśmy w stanie osiągnąć dysponując określonym budżetem, dostępnymi zasobami i umiejętnościami programistycznymi zespołów oraz czasem na realizację projektu. Różnice w funkcjonowaniu i wyglądzie aplikacji mobilnej mogą być dla użytkownika końcowego praktycznie niezauważane – inne jednak będą koszty i wysiłek związany z dostarczeniem takiej aplikacji.
3. „Czwarta droga”
Analizując obecną sytuację na rynku aplikacji mobilnych oraz dostępne rozwiązania narzędzia programistyczne wspierające tworzenie takich aplikacji, firma Embarcadero, korzystając ze swojej wiedzy i doświadczenia w tworzeniu narzędzi programistycznych (ponad 20 lat na rynku) zaproponowała alternatywne, innowacyjne podejście, pozwalające na połączenie zalet różnych typów aplikacji mobilnych: webowych, hybrydowych i natywnych.
Narzędzia Embarcadero pozwalają programistom na tworzenie aplikacji natywnych dla platform iOS i Android na bazie jednego kodu źródłowego (do wyboru języki Object Pascal, C++). Narzędzia zawierają uniwersalną, międzyplatformową warstwę wizualizacyjną FireMonkey, a dzięki dostępnym różnym stylom można dowolnie zmieniać wygląd aplikacji, zachowując przy tym jeden projekt interfejsu dla wszystkich platform. Dostarczane aplikacje są zgodne ze standardami i specyfikacją określonymi przez dostawców systemów (Android i iOS). Wygląd interfejsu aplikacji mobilnych można łatwo dopasowywać i skalować do różnych rozmiarów i rozdzielczości ekranów (tzw. form factors) urządzeń docelowych - jest to możliwe dzięki wykorzystaniu wektorowo – rastrowej grafiki.
| jeden kod - różne platformy (mobilne: Android / iOS , desktopowe: Win / OSX) |
| jeden kod - wiele urządzeń |
| jeden kod - jeden zespół - jeden projekt |
| języki Object Pascal, C++ |
Narzędzia Embarcadero kompilują napisany kod do kodu maszynowego urządzenia (kodu zgodnego z procesorem tabletu lub smartphone), dzięki czemu aplikacje są równie szybkie i wydajne jak aplikacje natywne. Przy okazji generowany kod maszynowy jest najlepszym zabezpieczeniem przed możliwością podejrzenia kodu aplikacji oraz jego modyfikacji przez osoby niepowołane (nie ma możliwości wykorzystania inżynierii wstecznej przez osoby trzecie). Dodatkowo te same narzędzia programistyczne Embarcadero pozwalają na skompilowanie stworzonego kodu Object Pascal i C++ na najpopularniejsze platformy desktopowe (Windows i OSX).