Szukasz najlepszych specjalistów od oprogramowania? Znajdziesz ich w kilka kliknięć.

Najlepsze alternatywy dla React Native w tworzeniu aplikacji mobilnych w 2022

14 paź 202115 min czytania

Miłosz Kaczorowski

Współzałożyciel Ideamotive. Doradca technologiczny i konsultant ds. oprogramowania.

najlepsze alternatywy dla react native w tworzeniu aplikacji mobilnych

W sierpniu 2021 roku platformy Android i iOS miały 99,15% udziału w rynku mobilnych systemów operacyjnych. Przez lata zdominowały rynek aplikacji mobilnych. Efektem jest rozkwit rozmaitych technologii mobilnych, w tym frameworków wieloplatformowych.  

wykres 1 udział mobilnych systemów operacyjnych na świecie sie 2020 - sie 2021

React Native jest jedną z najpopularniejszych spośród nich. 

 

Dlaczego?

 

React Native pozwala programistom współdzielić do 70% bazy kodu między platformami. Szybsze wytwarzanie, niższy koszt i łatwe debugowanie to część zalet tego frameworka. Wsparcie Facebooka sprawia też, że React Native działa jak należy. Jak każdy framework ma jednak swoje ograniczenia.  

 

Inżynierowie React Native często napotykają problemy ze zgodnością i brak własnych modułów. Do tego aplikacje budowane w tym frameworku tracą na wydajności przez funkcje jedynie zbliżone do natywnych. Czy w takim razie React Native to dobry wybór? Odpowiedź zależy od wymagań Twojego produktu. Aby ułatwić Ci decyzję, zebraliśmy listę alternatyw dla React Native, które mogą dać Twojej aplikacji mocne i wygodne funkcje. Na koniec będziesz wiedzieć, na którą technologię postawić. 

 

Zaczynajmy!

Alternatywy dla React Native, które warto rozważyć

Platformy natywne:

Języki programowania aplikacji natywnych to jedne z najpopularniejszych alternatyw. To technologie właściwe dla konkretnej platformy, używane do tworzenia aplikacji mobilnych na dany system. Przykłady takich systemów to Android, iOS czy Windows. Aplikacje natywne budowane w tych językach zwykle oferują lepszą wydajność i doświadczenie użytkownika. Programiści używają Swifta i Objective-C do aplikacji Apple oraz Javy i Kotlina do natywnych aplikacji na Androida.

Zalety:

  • Świetna wydajność

Te języki programowania komunikują się bezpośrednio z zasobami platformy. Dzięki temu programiści mogą w pełni wykorzystać elementy graficzne systemu, funkcje obliczeniowe czy inne komponenty, by budować szybko działające aplikacje. 

  • Łatwa skalowalność  

Przy rozbudowie możliwości aplikacji zawsze istnieje ryzyko natrafienia na uciążliwe przeszkody. Kod natywny zmniejsza to ryzyko. Wspierają go środowiska IDE i zestawy SDK dla iOS i Androida. Korzystając z tego, wdrożysz podstawowe, zaawansowane, a nawet najnowsze funkcje dla każdej platformy, bez martwienia się o zgodność.  

  • Łatwiejsza praca

Według Stack Overflow Developer Survey 2021 Swift jest 8. najbardziej lubianym językiem programowania spośród 38. W podobnym zestawieniu React Native jest 9. wyborem na 13 frameworków. Java plasuje się jako 5. najczęściej używany język, a React Native jako 6. najczęściej używany framework z 13. Pokazuje to, że te dwa języki natywne są odrobinę łatwiejsze w użyciu i nauce. Budowanie w nich aplikacji może zmniejszyć złożoność, na jaką natrafiają zarówno średnio zaawansowani, jak i doświadczeni programiści.

Wady

  • Wysoki koszt wytworzenia

Podejście natywne opiera się przede wszystkim na zasadzie „jeden produkt, dwie aplikacje”. W efekcie bywa kosztowne, bo potrzebujesz dwóch wyspecjalizowanych zespołów z rozległą znajomością kodu natywnego iOS i Androida.

  • Czasochłonność

Aplikacje na Androida i iOS wymagają osobnych baz kodu, co uniemożliwia ponowne wykorzystanie kodu między platformami. Każdy produkt trzeba budować, testować, aktualizować i utrzymywać osobno. W projektach wrażliwych na czas ten powolny proces to poważna wada. 

  • Wąski rynek specjalistów

Choć Java jest szeroko stosowana także poza tworzeniem aplikacji natywnych, z pozostałymi językami w tej kategorii jest odwrotnie. Stack Overflow ustalił, że Swifta używa 5,1%, a Kotlina 8,32% programistów. Może to wynikać z młodego wieku tych języków. Objective-C plasuje się jeszcze niżej, na 2,8%. React Native jest daleko z przodu, z 14,51%. W efekcie znalezienie programistów Swift lub innych osób z rozległą znajomością Kotlina i Objective-C może być trudne. 

 

Chcesz przeczytać szczegółowe porównanie React Native i Swifta? Przeczytaj ten artykuł.

Jakie aplikacje i produkty można zbudować w natywnym stosie technologicznym?

Technologia natywna jest idealna do gier, odtwarzaczy multimedialnych właściwych dla systemu i innych aplikacji wymagających pełnego dostępu do funkcji urządzenia.

Flutter 

Flutter-1

 

Flutter to młoda otwartoźródłowa technologia stworzona i oficjalnie wydana przez Google w 2018 roku. Podobnie jak React Native Flutter pozwala zbudować z jednej bazy kodu aplikację przypominającą natywną na wielu platformach. Powstaje w Darcie, obiektowym języku również od Google. Przez lata Flutter systematycznie zyskiwał na popularności, wyprzedzając swojego głównego konkurenta — React Native.

Zalety

  • Szybsze wytwarzanie

Podobnie jak React Native, Flutter pozwala skrócić czas wytwarzania i wdrożenia. Z jednego kodu zbudujesz dwie aplikacje (iOS i Android). Jego widżety i interaktywne narzędzia (np. hot reload) ułatwiają żmudne zadania, takie jak testowanie i debugowanie. Do tego językiem Fluttera jest Dart.  Jest szybki, zwięzły i kompiluje się do kodu natywnego bez dodatkowych abstrakcji. Sumuje się to na sprawne wytwarzanie i przewagę konkurencyjną dzięki krótszemu czasowi wejścia na rynek. 

  • Dobre doświadczenie wieloplatformowe

Widżety Material i Cupertino we Flutterze są zgodne z wytycznymi projektowymi Apple i Google. Programiści mogą korzystać z tych gotowych elementów UI, by budować aplikacje o efektownych interfejsach na obu platformach. Co więcej, silnik renderujący Fluttera - Skia - pozwala zarządzać każdym pikselem. To z kolei sprawia, że interfejs zbudowany we Flutterze pozostaje spójny na wielu platformach i wersjach systemu.

  • Łatwe debugowanie

Dzięki hot reloadom nie trzeba restartować całej aplikacji, by zobaczyć zmiany. Zamiast tego programiści Fluttera wprowadzają i widzą zmiany w czasie rzeczywistym, bez ponownej kompilacji kodu. To, że na dwie platformy buduje się jedną aplikację, sprawia, że wykryte i naprawione błędy znikają w obu wersjach.

  • Niski koszt

Podobnie jak przy React Native, koszt tworzenia aplikacji we Flutterze jest niższy niż przy aplikacjach natywnych. Jedną aplikację na iOS i Androida zbudujesz bowiem małym zespołem i w krótszym czasie.  

Wady

  • Ciężkie aplikacje

Aplikacje zbudowane we Flutterze mają duży rozmiar plików. Mogą ładować się wolno oraz zajmować miejsce i baterię. Aby to obejść, programiści często sięgają po mniej pakietów i bibliotek, rezygnując z części funkcji. Efektem jest produkt gorszej jakości. 

  • Niedojrzała technologia

Jako młody framework Flutter nie ma jeszcze rozbudowanej bazy zasobów. Oznacza to, że możesz nie znaleźć potrzebnych bibliotek i pakietów zewnętrznych. Inną wadą jego niedojrzałości jest potencjał zmian. Mniej korzystna zmiana w przyszłości może wprowadzić do frameworka komplikacje i utrudnić zarządzanie nim. Istnieje też możliwość, że Flutter nie przetrwa, biorąc pod uwagę historię zamykania projektów przez Google.  

  • Słabe wsparcie dla funkcji iOS

Flutter pozwala szybko i płynnie tworzyć aplikacje na Androida. Z iOS jest inaczej. Dostęp do natywnych komponentów platformy bywa problematyczny. Przez to niemal niemożliwe jest wdrożenie specjalnych funkcji iOS, takich jak guided access, czy prostych rzeczy w rodzaju domyślnego przejścia między ekranami. 

 

Chcesz przeczytać szczegółowe porównanie React Native i Fluttera? Przeczytaj ten artykuł.

Jakie aplikacje i produkty można zbudować we Flutterze?

Fluttera możesz użyć do produktów wymagających szybkiego dostępu lub działania w czasie rzeczywistym. Należą do nich aplikacje dla obsługi klienta, usług finansowych, firm e-commerce czy każdego sprzedawcy przyjmującego płatności na miejscu.

Xamarin

Xamarin

 

Kolejną popularną alternatywą dla React Native jest Xamarin. To wieloplatformowa technologia od Microsoftu. Zaczęła się od MonoTouch i Mono for Android w 2011 roku, aż Microsoft przejął ją w 2016. Xamarin wykorzystuje język C# i framework .NET do tworzenia aplikacji mobilnych na iOS, Androida i Windows. 

Zalety

  • Szybkie wytwarzanie

Dzięki podejściu Xamarina „jeden produkt, jeden stos technologiczny” programiści mogą wykorzystać ponownie do 90% kodu na różnych platformach. Nie trzeba przełączać się między środowiskami, bo aplikacje Xamarina budujesz w Visual Studio. Framework daje też dostęp do wspólnych zasobów na wszystkich wspieranych platformach. Sumuje się to na krótszy czas i niższy koszt wytworzenia. 

  • Elastyczność

Sklep komponentów Xamarina daje programistom dostęp do wieloplatformowych, ustandaryzowanych kontrolek UI, zintegrowanych bibliotek open source i usług zewnętrznych. Dzięki tym rozbudowanym zasobom wybierzesz potrzebne elementy albo wdrożysz wymagane funkcje w swoich aplikacjach. 

  • Świetna wydajność

Biblioteka Xamarin.Essentials daje dostęp do komponentów natywnych. Programiści mogą budować aplikacje na iOS i Androida osobno, przy użyciu Xamarin.iOS i Xamarin.Android. Powstają dzięki temu produkty zbliżone wydajnością do natywnych. React Native nie zbliża się pod tym względem. Interfejs aplikacji można też w czasie działania przekształcić w elementy natywne, by zapewnić niemal natywny wygląd i wydajność.

  • Łatwe skalowanie

Debugowanie i utrzymanie są łatwiejsze, bo programiści wychwytują i zmieniają rzeczy na wszystkich platformach z jednego kodu źródłowego. Xamarin integruje się też z SDK i API wspieranych platform. Ułatwia to aktualizowanie i wdrażanie nowych funkcji w aplikacjach na iOS i Androida, gdy tylko zmiany są dostępne.  

  • Rozbudowane wsparcie techniczne

Microsoft udostępnia materiały edukacyjne i kompleksowe rozwiązania, które pozwalają programistom testować, monitorować i zabezpieczać aplikacje. Należą do nich Azure Cloud, Xamarin Insights i Xamarin TestCloud.

Wady

  • Nieidealny do aplikacji mocno graficznych 

W Xamarinie programiści współdzielą głównie logikę biznesową, a nie kod interfejsu. Oznacza to, że dla każdej platformy trzeba zbudować osobny UI. W efekcie budowanie gier czy innych produktów wymagających złożonych animacji lub bogatego, interaktywnego interfejsu będzie wolniejsze i bardziej żmudne. 

  • Ograniczona społeczność 

W ostatnim badaniu Stack Overflow Developer Survey tylko 5,8% respondentów korzysta z Xamarina. Trudno więc zatrudnić programistów Xamarina z solidnym doświadczeniem i wiedzą. Ta wada może jednak nie potrwać długo, bo framework wciąż się rozwija. Jeśli masz pilne potrzeby, skontaktuj się z nami, a połączymy Cię ze zweryfikowanymi ekspertami Xamarina. 

  • Droga licencja

Xamarin przyspiesza prace i obniża koszty. Ta korzyść może jednak mniej imponować, gdy weźmie się pod uwagę cenę jego IDE — Microsoft Visual Studio. Do projektów komercyjnych najlepiej nadają się licencje Enterprise i Professional. Roczna cena Enterprise to 5999 USD na użytkownika w pierwszym roku, a potem 2569 USD za odnowienie. Nowy subskrybent Professional zapłaci 1999 USD , a w kolejnych latach 799 USD. 

  • Wrodzone ograniczenia

Choć Xamarin jest mocno nastawiony na tworzenie aplikacji natywnych, nie jest w pełni natywny. Wiąże się to z kilkoma ograniczeniami: restrykcyjnym dostępem do bibliotek open source, opóźnieniami w aktualizacji lub integracji nowych API właściwych dla platform oraz większym rozmiarem aplikacji. 

Jakie aplikacje i produkty można zbudować w Xamarinie?

Xamarin dobrze radzi sobie z aplikacjami o rozbudowanej logice lub prostym interfejsie. Należą do nich aplikacje do ankiet, zarządzania projektami, podróży, zakupów spożywczych czy śledzenia. 

NativeScript

NativeScript

 

Podobnie jak React Native framework ten używa JavaScriptu do budowy wieloplatformowych aplikacji mobilnych na iOS i Androida. Wspiera też TypeScript, Angulara i pokrewne frameworki. Aplikacje zbudowane w NativeScripcie są w pełni natywne. 

Zalety

  • Funkcje natywne

NativeScript wstrzykuje API iOS i Androida do maszyny wirtualnej JS, co ułatwia integrację z zasobami natywnymi. Daje to programistom szybki dostęp do wtyczek, Android SDK, menedżera zależności iOS - Cocoapods - i innych powiązanych technologii, by budować aplikacje o natywnej wydajności. Skutkuje to też intuicyjnym interfejsem i lepszym doświadczeniem użytkownika.

  • Szerszy rynek specjalistów

NativeScript korzysta z JS i podzbioru CSS, a obie technologie są dojrzałe. Programiści z niezłą znajomością tych technologii szybciej zbudują aplikacje natywne. Do tego NativeScript wspiera różne frameworki JS, takie jak Angular, Vue.js czy TypeScript. 

 

  • Krótszy czas wytwarzania

Budując w NativeScripcie, programiści widzą zmiany w kodzie na ekranie emulatora w czasie rzeczywistym. Nie trzeba więc potem ponownie kompilować aplikacji. W połączeniu z jedną bazą kodu oznacza to, że każda modyfikacja może zostać zastosowana na innych platformach. Framework przyspiesza więc wytwarzanie. 

Wady

  • Wiedza natywna

W zależności od zakresu projektu może zajść potrzeba wdrożenia zaawansowanych funkcji natywnych. Wymaga to konsultantów software'owych znających markup i elementy interfejsu właściwe dla danej platformy.

  • Niepewna jakość wtyczek

Choć w NativeScripcie jest sporo darmowych wtyczek, nie wszystkie są zweryfikowane. Naraża to programistów na użycie wadliwych wtyczek open source, co może skutkować poważnymi wąskimi gardłami albo, co gorsza, słabym produktem końcowym.

  • Większy rozmiar aplikacji niż natywnej

Niezależnie od tego, jak blisko natywnych są aplikacje NativeScript, ich rozmiar jest stosunkowo większy. Domyślny rozmiar pustego projektu na Androida w NativeScripcie to 12 MB. To wciąż mniej niż domyślny rozmiar APK w React Native, który sięga nawet 23 MB 

Jakie aplikacje i produkty można zbudować w NativeScripcie?

NativeScript najlepiej nadaje się do aplikacji czasu rzeczywistego lub produktów, które muszą sięgać do funkcji podzespołów urządzenia. Należą do nich aplikacje do streamingu, transmisji na żywo i prostych gier. 

Ionic

Ionic

 

Ionic to alternatywa dla React Native, która pozwala budować aplikacje wieloplatformowe. Ten otwartoźródłowy SDK powstał pierwotnie na bazie Apache Cordova i AngularJS. Później dodano wsparcie dla innych frameworków JS, takich jak React, Vue.js i Angular. 

Zalety

  • Funkcje natywne

Dzięki wtyczkom Apache Cordova i Capacitor Ionic zyskuje dostęp do takich możliwości systemu mobilnego jak aparat, Bluetooth, mikrofon, czytnik linii papilarnych czy GPS. Komponenty UI Ionica i wbudowane style adaptacyjne sprawiają też, że aplikacje zachowują natywny charakter dzięki drobnym zmianom w projekcie. 

  • Doświadczenie wieloplatformowe

Ionic korzysta ze standardów webowych i popularnych API, by budować aplikacje na dowolną platformę. Programiści mogą zbudować aplikację, a potem dostosować ją do wszystkich wspieranych platform, używając jednej bazy kodu. 

  • Krótszy czas wytwarzania

Dzięki gotowym funkcjom Ionica nie trzeba budować komponentów UI dla każdego projektu. Programiści mogą je wykorzystać ponownie lub dostosować, budując działającą aplikację w krótszym czasie. 

Wady

  • Nieodpowiedni do gier

Jak większość frameworków wieloplatformowych, Ionic może nie być idealny do aplikacji z zaawansowaną grafiką. Wynika to z użycia CSS, który jest ograniczony przy tworzeniu gier 3D. W takim wypadku najlepszym wyborem może być technologia natywna. 

  • Problemy ze zgodnością

Zintegrowane wtyczki natywne mogą ze sobą kolidować, powodując problemy, które znacząco spowalniają prace. 

  • Kwestie bezpieczeństwa

Tworzenie wieloplatformowe oznacza, że trzeba zadbać o bezpieczeństwo zarówno wersji webowej, jak i natywnej aplikacji mobilnej. Choć istnieją na to rozwiązania, bywa to żmudne i kosztowne przy aplikacjach wymagających wysokiego poziomu bezpieczeństwa. 

 

Chcesz przeczytać szczegółowe porównanie React Native i Ionica? Przeczytaj ten artykuł

Jakie aplikacje i produkty można zbudować w Ionicu?

Ionica można użyć do aplikacji wymagających natychmiastowej informacji lub funkcji zbliżonych do natywnych. Obejmuje to aplikacje newsowe, lifestyle'owe, streamingowe i finansowe. 

Apache Cordova

Apache Cordova

 

Stworzona przez Nitobi Apache Cordova została przejęta przez Adobe w 2011 roku i przemianowana na PhoneGap. Następnie wydano ją jako otwartoźródłową wersję PhoneGapa. Apache Cordova pozwala budować aplikacje mobilne w HTML-u, CSS-ie i JavaScripcie. Tworzenie aplikacji wieloplatformowych w tej alternatywie dla React Native możliwe jest przez interfejs wiersza poleceń (CLI). Do aplikacji zbliżonych do natywnych możesz użyć przepływu pracy Cordovy skoncentrowanego na platformie. 

Zalety

  • Bogaty zbiór wtyczek

Budując w Apache Cordova, programiści mają do wyboru sporo wtyczek. Dają one dostęp do natywnych API urządzenia, co ułatwia wdrażanie szerokiej funkcjonalności w aplikacjach dla lepszej wydajności i doświadczenia użytkownika. 

  • Dostępne kompetencje

JS, CSS i HTML, czyli standardowe technologie używane przez Cordovę, są dojrzałe. Programiści mobilni z zapleczem w tych technologiach szybko przestawią się na budowanie aplikacji w Apache Cordova. Łatwość znalezienia programistów, łagodna krzywa uczenia i szybkie wejście na rynek to bezpośrednie korzyści.

  • Wsparcie wieloplatformowe

Działając na zasadzie „Write Once, Run Anywhere”, kod można wykorzystywać ponownie na wielu platformach. Dzięki temu aplikacje dopasowują się do interfejsu dowolnej platformy. Nie trzeba też uczyć się języków właściwych dla platform, bo wystarczy jedna baza kodu.

Wady

  • Ograniczenia właściwe dla platform

Ponieważ aplikacje Apache Cordova nie są w pełni natywne, korzystają z wtyczek, by sięgnąć do możliwości urządzenia. Te zewnętrzne wtyczki mogą nie być łatwo dostępne, aktualne lub zgodne między platformami. 

  • Możliwa potrzeba programistów natywnych

Jak wspomnieliśmy, aplikacje zbudowane w Cordovie mogą mieć problemy ze zgodnością niektórych wtyczek. Możesz potrzebować wyspecjalizowanych programistów natywnych, którzy napiszą własną wtyczkę od zera. Przekłada się to na dłuższy czas i wyższy koszt wytworzenia. 

  • Możliwe problemy z wydajnością

Budowanie wysokowydajnych aplikacji na domyślnej funkcjonalności Cordovy bywa trudne. Ograniczenia jej technologii potrafią spowolnić aplikację. Takie wady tkwią w komponentach WebView i przeglądarki mobilnej, a także w braku wielowątkowości w JavaScripcie.

Jakie aplikacje i produkty można zbudować w Apache Cordova?

Cordovy możesz użyć do aplikacji łączących komponenty natywne z WebView, by sięgać do API urządzenia. Należą do nich aplikacje fitnessowe, sportowe, do śledzenia i marketplace'y. 

Framework 7

Framework 7-1

 

Framework 7 to kolejna alternatywa dla React Native, którą warto rozważyć. To otwartoźródłowy framework HTML służący do budowy hybrydowych aplikacji webowych i mobilnych o funkcjonalności zbliżonej do natywnej. Framework 7 jest zgodny z platformami Android i iOS.

Zalety

  • Responsywność

Od podstawowych po zaawansowane elementy - Framework 7 ma rozbudowany zestaw komponentów UI. Programiści mają dostęp do kontrolek takich jak leniwe ładowanie, nieskończone przewijanie czy listy z polami wyboru. Z tymi zasobami budują dynamiczne aplikacje o czystych, natywnych interfejsach.

  • Wsparcie wielu frameworków

Frameworka 7 można używać z frameworkami JS takimi jak Angular, React i Vue.js. Te struktury wnoszą do procesu wytwarzania swoją moc i prostotę

  • Przyjazny programistom

Programiści nie są ograniczeni do własnych tagów. Pracując z Frameworkiem 7, mogą swobodnie używać zwykłego HTML-a uzupełnionego o JS i CSS. Oznacza to, że programiści z przynajmniej średnią znajomością tych języków, a nawet jQuery, sobie poradzą. 

 

Wady

  • Ograniczone wsparcie platform

Obecnie Framework 7 wspiera tylko platformy iOS i Android. Programiści, którzy chcą tworzyć aplikacje na inne platformy, powinni rozważyć inne frameworki.

  • Nastawienie na iOS

Framework 7 powstał pierwotnie dla środowiska Apple. Otwiera to możliwość wystąpienia problemów z renderowaniem przy tworzeniu aplikacji na Androida.

  • Skromna dokumentacja

Użytkownicy łatwo znajdą materiały o tym, jak wdrożyć dowolny zestaw elementów w tym frameworku. Bardziej zaawansowane potrzeby mogą jednak nie mieć gotowych odpowiedzi, bo dokumentacja nie jest tak obszerna jak w innych frameworkach.  

Jakie aplikacje i produkty można zbudować w Frameworku 7?

Frameworka 7 można użyć do progresywnych aplikacji webowych albo aplikacji na iOS i Androida korzystających z podzespołów urządzenia. 

jQuery Mobile

jQuery Mobile-1

 

jQuery Mobile to otwartoźródłowa biblioteka JavaScriptu do tworzenia wieloplatformowych aplikacji mobilnych i stron. Korzysta z możliwości jQuery, znanego z łatwości i szybkości wdrażania animacji, AJAX-a i manipulacji drzewem DOM.  

Zalety

  • Niższa krzywa uczenia

Technologia opiera się na jQuery Core, z którym większość programistów zapewne już pracowała. Ułatwia to naukę i korzystanie.

  • Zgodność wieloplatformowa i międzyprzeglądarkowa

Dzięki frameworkowi jQuery Mobile zbudujesz bardzo responsywne aplikacje i strony zgodne z popularnymi przeglądarkami desktopowymi i platformami. Wspierane platformy to iOS, Android, Windows, WebOS i Blackberry. 

  • Znakomite animowane przejścia między stronami

Oparty na zasadzie progresywnego ulepszania system nawigacji jQuery Mobile pozwala ładować strony do DOM przez Ajax. Dzięki temu strony są ulepszane, a następnie wyświetlane z wysokiej jakości przejściami.

  • Prosty i wygodny

Programiści obsłużą zdarzenia HTML, żądania AJAX i manipulację DOM w kilku linijkach kodu. W czystym JavaScripcie zajęłoby to znacznie więcej. 

  • Lekkość

Dzięki ograniczonej liczbie zależności graficznych jQuery Mobile ma zminifikowany rozmiar 40 KB. Przekłada się to na szybkość. 

Wady

  • Skromny wybór motywów

Dostępne motywy CSS w jQuery Mobile ułatwiają dostosowanie aplikacji. Jest ich jednak niewiele. Programiści mogą więc tworzyć aplikacje mało wyróżniające się na tle innych produktów zbudowanych w tej technologii.

  • Czasochłonność w połączeniu z innymi frameworkami

jQuery Mobile łączy się z innymi frameworkami mobilnymi, takimi jak PhoneGap, dla lepszej wydajności. Może to jednak spowolnić prace. 

  • Wolniejszy na urządzeniach mobilnych

Ta technologia jest zauważalnie wolniejsza nawet na najnowszych platformach iOS i Android. Jeśli chcesz zbudować szybką aplikację mobilną, warto rozważyć inne rozwiązania.

Jakie aplikacje i produkty można zbudować w jQuery Mobile?

jQuery Mobile jest idealne do aplikacji celujących w starsze przeglądarki, systemów zarządzania treścią i innych produktów, które wymagają animacji, a mniej interakcji użytkownika. 

PhoneGap

PhoneGap-1

Progresywne aplikacje webowe (PWA)

Progresywne aplikacje webowe to oprogramowanie, które ładuje się i działa w przeglądarce jak zwykła strona. Łączy możliwości webu z funkcjonalnością aplikacji natywnych (na przykład powiadomieniami push i dostępem do funkcji sprzętowych), by zapewnić świetne doświadczenie użytkownika. W przeciwieństwie do tradycyjnych aplikacji PWA nie da się zainstalować z sklepu z aplikacjami. Można je natomiast dodać do ekranu głównego użytkownika. Progresywne aplikacje webowe budowane są w standardowych technologiach webowych: HTML, JavaScript i CSS. 

Zalety:

  • Wysoka responsywność

PWA łatwo dopasowują się do rozmiarów ekranów wielu urządzeń, czy to tabletu, komputera, telefonu z Androidem lub iOS, czy innych rozmiarów pośrednich. 

  • Bezpieczeństwo

Dzięki HTTPS informacje przesyłane w PWA są szyfrowane. W większości przypadków użytkownicy nie mają dostępu do części funkcji, takich jak geolokalizacja, bez bezpiecznego połączenia. Daje to wysoki poziom bezpieczeństwa i lepszą ochronę przed atakami typu on-path oraz innymi zagrożeniami. 

  • Atrakcyjne doświadczenie użytkownika

PWA budowane są na zasadzie progresywnego ulepszania. Aplikacje dają lepsze doświadczenie w przeglądarkach zgodnych ze standardami i przynajmniej akceptowalny interfejs w tych mniej zgodnych. Dzięki nowoczesnym standardom webowym oferują też funkcjonalność i wrażenia aplikacji natywnej. Te możliwości dodatkowo wzbogacają doświadczenie mobilne. 

  • Mniejsza zależność od sieci

Jedną z największych zalet progresywnych aplikacji webowych jest zdolność działania mimo wolnego połączenia. Jeśli użytkownik odwiedził stronę, może sięgnąć po treść nawet bez sieci. Umożliwiają to Service Workery, Cache API i technologia przechowywania po stronie klienta, która zapisuje zasoby strony offline.  PWA wykorzystują to też do szybszego ładowania. 

  • Łatwy dostęp i utrzymanie

Jako aplikacja webowa PWA jest lepiej widoczna, bo mogą ją znaleźć i pozycjonować wyszukiwarki. Testy i aktualizacje przeprowadza się też łatwo, bez dodatkowych instalacji po stronie użytkownika, bo aplikacje te są dostępne online. 

Wady

  • Ograniczony dostęp do podzespołów

Choć PWA mają dostęp do sporej liczby funkcji, nie wykorzystają w pełni rozbudowanych podzespołów urządzenia. Obsługa zaawansowanych ustawień aparatu, funkcji połączeń, Bluetootha i części innych funkcji jest na niektórych urządzeniach wciąż słabo rozwinięta.

  • Słabe wsparcie iOS

Częstą wadą PWA na urządzeniach iOS jest brak obsługi powiadomień push. Uniemożliwia to ponowne zaangażowanie użytkowników iOS nową treścią lub aktualizacjami, co obniża konwersje. 

  • Brak wiarygodnej kontroli zewnętrznej

Ponieważ PWA nie są pobierane ze sklepów z aplikacjami, nie ma dla nich standardów regulacyjnych. Przez to jakość interfejsu większości takich aplikacji bywa niespójna. 

Jakie aplikacje i produkty można zbudować jako progresywne aplikacje webowe?

PWA najlepiej sprawdzają się w oprogramowaniu podatnym na nieudane operacje przez wolną sieć, w aplikacjach o dużym ruchu i w tych używanych rzadko. Należą do nich produkty dla firm e-commerce, usług przewozowych, agencji marketplace'owych itp.

 

Bootstrap

Bootstrap

 

Bootstrap to zestaw narzędzi łączący JavaScript, CSS i HTML. Jest szeroko używany do tworzenia responsywnych stron w podejściu mobile-first oraz progresywnych aplikacji webowych (PWA) w pełni osadzonych w przeglądarce. 

 

Czym są PWA?

 

Progresywne aplikacje webowe to oprogramowanie, które ładuje się i działa w przeglądarce jak zwykła strona. Łączy możliwości webu z funkcjonalnością aplikacji natywnych (na przykład powiadomieniami push i dostępem do funkcji sprzętowych), by zapewnić świetne doświadczenie użytkownika. W przeciwieństwie do tradycyjnych aplikacji PWA nie da się zainstalować ze sklepu z aplikacjami. Można je natomiast dodać do ekranu głównego użytkownika. 

Zalety

  • Wysoka responsywność

Płynny system siatki Bootstrapa to jedna z jego głównych zalet. Ma dobrze zdefiniowane klasy i wiele łatwych układów. Po wdrożeniu daje spójny wygląd na wszystkich platformach. Te komponenty można też dostosować do projektu graficznego każdego przedsięwzięcia. 

  • Obszerna dokumentacja

Okrzyknięty „najpopularniejszą biblioteką HTML, CSS i JS na świecie”, Bootstrap ma obszerną dokumentację. Programiści mobilni mają więc spore szanse znaleźć rozwiązania podstawowych i zaawansowanych problemów w tym frameworku. 

  • Wbudowane wsparcie wtyczek jQuery

Dzięki tym wbudowanym wtyczkom Bootstrap sięga po kolejne komponenty UI z API JavaScriptu. Interfejsy takie jak dymki podpowiedzi czy okna dialogowe potrafią też poprawić działanie istniejących elementów. 

  • Bezpieczeństwo

PWA w Bootstrapie przesyłają informacje przez HTTPS. W większości przypadków użytkownicy nie mają dostępu do części funkcji, takich jak geolokalizacja, bez bezpiecznego połączenia. Daje to wysoki poziom bezpieczeństwa i lepszą ochronę przed większością zagrożeń.

Wady

  • Zbędny kod na wyjściu

Używanie Bootstrapa w trybie domyślnym otwiera możliwość wczytania do projektu wielu nieużywanych elementów i kodu. Przekłada się to na duży rozmiar aplikacji i wolne ładowanie.

  • Ograniczona funkcjonalność urządzenia

Używanie tego frameworka do aplikacji webowych wymagających rozbudowanych możliwości smartfona nie jest dobrym pomysłem. Aplikacje webowe napisane w JS i Bootstrapie nie mają bowiem pełnego dostępu do czujników i funkcji urządzenia.

  • Dodatkowe dostosowywanie 

Aplikacje webowe zbudowane na domyślnych komponentach Bootstrapa wyglądają podobnie. Aby je dostosować, trzeba ręcznie nadpisać arkusze stylów. Ten dodatkowy krok często przekreśla sens używania frameworka. 

  • Może nie być przyjazny programistom

Niektóre zadania, takie jak korzystanie z predefiniowanych klas czy dostosowywanie, mogą wymagać dłuższej nauki. 

Jakie aplikacje i produkty można zbudować w Bootstrapie?

Bootstrap służy przede wszystkim do projektowania responsywnych stron i aplikacji webowych. 

 

Tabela 1 - podsumowanie najlepszych alternatyw dla React Native w tworzeniu aplikacji mobilnych
Tabela 2 - podsumowanie najlepszych alternatyw dla React Native w tworzeniu aplikacji mobilnych

Podsumowanie

W bardzo konkurencyjnym świecie aplikacji mobilnych rezygnacja z budowania aplikacji na kilka platform to duże ryzyko. Wybór właściwej alternatywy pomoże Ci zachować obecność na ważnych platformach, obniżając przy tym koszty wytworzenia. 

 

Wciąż zastanawiasz się, która technologia najlepiej pasuje do Twojej nowej aplikacji mobilnej? A może jednak zostajesz przy React Native? Niezależnie od wyboru w naszej sieci talentów czekają setki zweryfikowanych programistów gotowych do pracy nad Twoim projektem. Zapewnimy Ci doradztwo techniczne i ekspertów biegłych w dowolnej technologii, dopasowanych do Twojego produktu i branży. Napisz do nas, by skonsultować swój pomysł.

Miłosz Kaczorowski

Współzałożyciel Ideamotive. Świetnie zna Ruby on Rails, JavaScript i administrację systemami Linux. Doświadczony we wdrażaniu skutecznych aplikacji webowych.

Zobacz wszystkie wpisy autora
React Native 2022

Wybór React Native do Twojego mobilnego stosu technologicznego w 2022

Kompletny przewodnik dla CEO i product ownerów

Czytaj teraz
Newsletter 9-1
Newsletter Ideamotive
Twój dwutygodniowy przegląd najgorętszych newsów technologicznych

Szukasz ekspertów od React Native do swojego zespołu?

W naszej sieci talentów czekają dziesiątki zweryfikowanych specjalistów React Native.