Deweloperzy oraz przedsiębiorcy mogą stanąć przed niełatwym wyborem pomiędzy inwestycją w aplikację natywną a wieloplatformową. Obydwa rozwiązania posiadają liczne zalety i wady.
Wieloplatformowe podejście jest częstym wyborem z uwagi na jego szerokie zastosowanie. Oferuje ono bowiem możliwość utworzenia aplikacji mobilnej, która od samego początku dostosowana jest do różnych systemów operacyjnych i to za pośrednictwem jednej bazy kodu. Jest to realna oszczędność zasobów takich czas zespołu deweloperskiego, co przekłada się na wysokość kosztów finansowych, które pochłonie projekt.
Wieloplatformowe podejście jest popularne szczególnie wśród startupów, które mierzą się z ograniczonym budżetem. Umożliwia ono także zdecydowanie szybsze wdrożenie, co może być ważne na przykład podczas wprowadzania na rynek produktu MVP. Przy wieloplatformowych aplikacjach oszczędzamy także czas na aktualizowaniu (jedna aktualizacja odpowiada wielu platformom) czy testowaniu np. UAT. Przy pomocy zestawów narzędzi open source programista może stworzyć aplikację, która zadziała zarówno na iOS i Android. Oczywiście należy pamiętać o możliwych wyzwaniach, które mogą potencjalnie pojawić się przy zastosowaniu podejścia wieloplatformowego, takich jak dostosowywanie interfejsu użytkownika dla każdej z platform czy ich optymalizacja. Jednak na etapie tworzenia i utrzymania aplikacji wybór tego podejścia będzie bardziej oszczędnym sposobem.
Planowanie aplikacji wieloplatformowej – wybór narzędzia
Po opracowaniu harmonogramu prac, konspektu oraz oszacowaniu budżetu przychodzi czas na wybranie narzędzia do wykonania naszej aplikacji. Kluczowy będzie wybór odpowiedniej technologii, która umożliwi zrealizowanie założeń aplikacji mobilnej. Dostępne na rynku otwartoźródłowe narzędzia odpowiadają różnym potrzebom, poniżej pokrótce prezentujemy kilka z nich:
- React Native to framework udostępniony przez firmę Facebook, który pozwala na łatwą integrację z natywnym kodem (dodawanie modułów natywnych Java lub Swift/Objective-C). Jest także wyposażony w szeroki ekosystem narzędzi oraz bibliotek, z uwagi na dużą społeczność korzystającą z React Native, która dzieli się wypracowanymi rozwiązaniami. Niestety, React Native nie będzie słusznym wyborem przy budowie aplikacji wymagającej dużej wydajności,
- Flutter jest frameworkiem od Google, zastosowanym na przykład w Google Ads. Udostępnia on własne komponenty UI dzięki czemu osiąga wydajność bliską aplikacjom natywnym. Jest świetnym wyborem przy tworzeniu aplikacji, na których spodziewamy się dużego ruchu oraz zapotrzebowania na wysoką wydajność,
- Ionic to framework dla deweloperów obeznanych w technologii webowej, który oparty został o technologie internetowe: JavaScript, HTML5, CSS – pozwalający na stworzenie aplikacji WebView, która jest trudna do odróżnienia od standardowej aplikacji mobilnej dla zwykłego użytkownika. Takiego rodzaju aplikacje umożliwiają wyświetlanie respondywnej strony internetowej osadzonej w aplikacji mobilnej. Dzięki wtyczkom (np. Cordova Plugins) możemy integrować ją z funkcjami natywnymi. Prototypowanie aplikacji w Ionic jest szybkie i często wybiertane przy wdrażaniu MVP.
Podsumowując wybór frameworka uzależniony jest od przeznaczenia aplikacji. Dla prostych aplikacji informacyjnych wystarczy posłużenie się React Native czy Ionic. Za to przy projektowaniu aplikacji dla e-commerce, które posiadają rozbudowane UI, adekwatne będzie skorzystanie z Flutter.
Najważniejsze praktyki podczas tworzenia aplikacji wieloplatformowych
Przy tworzeniu aplikacji wieloplatformowej ważne jest optymalizowanie wydajności, w tym celu warto korzystać z natywnych API dla kluczowych funkcji jak biometria czy użytkowanie aparatu (funkcje HDR czy slow-motion). Dzięki temu wykorzystamy faktyczne możliwości sprzętu. Zapewnienie aplikacji bezpośredniego dostępu do natywnych funkcji systemu pozwoli zminimalizować ryzyko błędów, które mogą generować zaimplementowane wtyczki.
Kolejnym istotnym krokiem jest przeprowadzenie rzetelnych testów aplikacji za pomocą platform takich jak BrowserStack, które pozwalają programiście na sprawdzenie responsywności aplikacji na żądanie w różnych systemach operacyjnych, przeglądarkach WWW i urządzeniach mobilnych.
Kluczowa jest także automatyzacja procesów do czego mogą posłużyć nam różnorodne narzędzia. Za pomocą zautomatyzowanej platformy testowej (np. Appium, Detox) przeprowadzimy testy jednostkowe i integracyjne. Skorzystanie z tego rodzaju rozwiązań eliminuję konieczność znajomości testowego języka skryptowego. Istnieją także liczne narzędzia ułatwiające praktykę CI/CD – między innymi GitHub Actions, Jenkins, AWS CodePipeline, Azure DevOps i wiele innych. Dzięki korzystaniu z wyżej wymienionych udogodnień jeszcze szybciej opracujesz satysfakcjonujące oprogramowanie dla swojej aplikacji, a jej testowanie oraz wdrażanie przebiegnie bezproblemowo.
Przyszłość aplikacji wieloplatformowych
Wiemy, że natywne podejście jeszcze długo pozostanie najczęstszym wyborem, szczególnie przy projektach wymagających wysokiej wydajności – na przykład tych wykorzystujących technologię AR (rozszerzonej rzeczywistości). Obserwujemy jednak tendencję do wieloplatformowości przy budowaniu aplikacji stricte konsumenckich, przy których szybkie i łatwe prototypowanie jest kluczowe. Powstają także kolejne narzędzia jak Kotlin Multiplatform, co potwierdza nasilający się trend ku rozwiązaniom wieloplatformowym. Dzięki coraz szerzej dostępnym narzędziom SDK tworzenie aplikacji staje się coraz łatwiejsze oraz uproszczone. Zespoły programistyczne współdzielą kody i dzielą logikę aplikacji, co przekłada się na oszczędność zasobów oraz nakładu pracy. W ten sposób koszty projektu zostają skutecznie obniżone, a to może znacznie przyczynić się do spopularyzowania wyboru podejścia wieloplatformowego na rynku deweloperskim.
Materiał sponsorowany.