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).