Porównanie: React Native vs. Tworzenie aplikacji natywnych
Opublikowany: 2021-10-05Czy framework React Native RoR może konkurować z tworzeniem aplikacji natywnych ?
Właściwie jest to jedna z tych hybrydowych aplikacji, o których słyszymy w dzisiejszych czasach tak wiele opinii. Istnieje wiele wieloplatformowych narzędzi programistycznych, ale tym, na które zwracamy uwagę w tym tekście, jest framework React Native RoR. Czy React Native jest natywny? Zbadajmy więc tę sprawę.
Choć nasz świat stał się wielozadaniowy, każdego dnia podejmujemy około 3500 decyzji, a to nie jest nawet szczyt. Ten wieloopcjonalny czynnik wpłynął również na świat programowania natywnego iOS (i Androida) - istnieje wiele sposobów na zbudowanie aplikacji. Możesz mieć swoją aplikację na różnych platformach, może to być internetowa lub mobilna, natywna lub wieloplatformowa, wszystko można rozgryźć w zależności od Twoich potrzeb i wartości. Postaramy się podkreślić zalety i wady każdego przypadku.
Dobrze znane i chodzące po ścieżkach tworzenia aplikacji są te natywne i wieloplatformowe. Tworzenie aplikacji natywnych doskonale sprawdza się na urządzeniach mobilnych i jest oficjalnym rodzajem programowania do określonego celu (iOS lub Android), w ramach określonego IDE ( XCode lub Android Studio ) i w określonym języku ( Kotlin/Java dla Androida, Swift/ Objective-C dla iOS ).
Drugi rodzaj opracowanych aplikacji to hybryda. Jaka jest różnica między tworzeniem aplikacji wieloplatformowych (np. React Native) a tworzeniem aplikacji natywnych? Tworzenie aplikacji wieloplatformowych różni się nieco od natywnych, ponieważ w większości przypadków zawiera framework open-source, który miesza koncepcje tworzenia aplikacji mobilnych i internetowych, i dość często jest napisany w języku Java Script, chociaż ostateczny wynik byłby ostatecznie być „podobnym natywnym” plikiem aplikacji. Rywalizacja „aplikacje natywne vs aplikacje hybrydowe” osiąga obecnie swój meridian.
Chociaż wszystko jest jasne w przypadku „natywnych” platform i języków, aplikacje hybrydowe mają szerszą klasyfikację. Najczęściej używane wieloplatformowe frameworki JS to:
- Ionic 3 framework
- Xamarin
- Cordova (dawniej PhoneGap)
- React Native RoR framework
Dlaczego dzisiaj wybierać aplikacje hybrydowe i na jakim frameworku je budować? Co wybrać – React Native vs Ionic? Xamarin kontra React Native? Jednym z najczęściej używanych frameworków do tworzenia aplikacji wieloplatformowych jest React Native , ale co sprawia, że ludzie z niego korzystają? Próbowałem zbadać tę sprawę.
Reaguj szybciej.
[Źródło obrazu: Facebook React Native]
Założę się, że rozpoznałeś każdą z tych ikon. Wszystkie z nich (w przeszłości, a nawet obecnie) były lub są budowane przy użyciu React Native. Skoro o tym mowa, firma Facebook jest w zasadzie właścicielem i aktywnym promotorem rozwoju aplikacji React Native. Jednak sama firma zaprzecza, że jest „narzędziem do aplikacji hybrydowych”. Jak twierdzą na swoim oficjalnym lądowaniu,
„Dzięki React Native nie tworzysz „mobilnej aplikacji internetowej”, „aplikacji HTML5” ani „aplikacji hybrydowej”. Tworzysz prawdziwą aplikację mobilną, której nie da się odróżnić od aplikacji zbudowanej przy użyciu Objective-C lub Java. React Native wykorzystuje te same podstawowe elementy konstrukcyjne interfejsu użytkownika, co zwykłe aplikacje na iOS i Androida. Po prostu składasz te klocki razem za pomocą JavaScript i React.”
[Źródło: Facebook Github]
Ale czy React Native naprawdę rocka vs tworzenie aplikacji natywnych? Cóż, nie do końca. Po pierwsze, nawet proces tworzenia aplikacji jest tutaj inny.
Jak zbudować natywną aplikację React? Zapakuj to.
Sam React Native na Androida (i iOS) jest zawijaniem natywnej kompilacji, w której narzędzie JS pozwala znacznie łatwiej budować aplikacje. Ma nawet uproszczoną strukturę - komponenty wyglądają jak podstawowe tagi HTML. Kod, który piszesz w React Native, jest unikalny dla każdej platformy mobilnej, ale istnieje wiele uniwersalnych narzędzi, które można ponownie wykorzystać i ponownie zastosować na iOS lub Androidzie. Co więcej, możesz mieć kilka miejsc docelowych kompilacji, co sprawia, że nazywam programowanie React Native nie tylko platformą międzyplatformową, ale także między urządzeniami. Możesz dostosować swoją aplikację do iOS, tak samo jak AppleTV i Mac OS.
Aplikacje tworzone w React Native nie wymagają natywnego IDE (XCode lub Android Studio), chociaż można je tworzyć przy ich użyciu, ponieważ niestandardowe IDE Expo - React Native ma do zaoferowania mniej funkcji debugowania. Framework RN również nie zawiera wyrafinowanej struktury komponentów - jest to dość prosty, a jeśli szukasz bardziej złożonego, musisz użyć natywnych części iOS lub Androida, zawiniętych w okładkę JS na górze (co jest dość , dość niechlujny) . Niektóre elementy są ubrane w , który pomaga wstawiać do niego różne rekwizyty.
Kilka zalet, które sprawiają, że React Native jest smaczną ofertą dla twórców aplikacji wieloplatformowych na całym świecie :
1. Wymaga od ciebie mniej zasobów.
Jak każde rozwiązanie wieloplatformowe, jest tańsze i nieco bardziej ekonomiczne; nie musisz zatrudniać dwóch oddzielnych zespołów zajmujących się tworzeniem aplikacji – możesz mieć jeden programista, ale wynik objąłby obie platformy, jeśli chcesz. Ilość zasobów i kosztów poniesionych na tworzenie tych aplikacji będzie oczywiście znacznie niższa niż zajęłoby tworzenie aplikacji natywnych.
2. Siła React Native tkwi w jego składnikach.
Jak już zostało powiedziane, lista komponentów akceptowalnych dla React Native jest ogromna. Z kolei te elementy z pewnością mogłyby zostać ponownie wykorzystane w innych projektach, gdyby miały kilka wspólnych podobieństw.
3. Ma ogromną społeczność.
Jak myślisz, ile osób ma oficjalna społeczność React Native na Facebooku? W momencie publikacji tego artykułu liczba ta przekroczyła 23 000. Największą zaletą bycia częścią dużej społeczności jest poczucie pewnej integracji + umiejętność wydobywania z niej nowych komponentów. Komponenty, które tworzysz dla swoich niestandardowych celów, mogą być łatwo dystrybuowane w grupie - dzięki czemu możesz znaleźć gotowe rozwiązanie, gdy jest to potrzebne, bez konieczności przepisywania go od zera.
4. Jest promowany przez...
Facebookową korporację jako całość można już nazwać „Branded Brand”, więc cały Facebook-za nią daje gigantyczną przewagę frameworkowi React Native (jeśli weźmiemy nawet porównanie Ionic vs React Native). Użytkownicy ufają, że ta sieć społecznościowa jest wystarczająco trwała, aby reprezentować produkty, które reklamuje i na których twierdzi, że polega.
Jeden rozmiar nie pasuje do wszystkich.
Po drugiej stronie ringu, gdzie są programiści aplikacji natywnych, są też wartości i korzyści, które kupujesz, płacąc za „przejście na natywny”.
1. Natywny = bardziej responsywny.
Responsywność interfejsu to coś, czego pragną projektanci UX i do czego wkładają dziesiątki wysiłków. Gdy jest to aplikacja natywna, każdy ekran projektowy jest oddzielnie projektowany i dostosowywany do wytycznych sklepów, aby pasował do stylu — płaskiego lub materiałowego .
2. Języki ojczyste = oficjalnie opracowane przez sklepy Apple i Google.
Native App Store i Google Play akceptują aplikacje zbudowane na językach opracowanych i obsługiwanych przez platformy. Jeśli będziesz postępować zgodnie z wytycznymi - Twoja drabina do sklepu jest gotowa. W przypadku aplikacji wieloplatformowej nadal masz szansę na zaakceptowanie, ale są szanse, że zostaniesz odrzucony za tylko trochę „webbish” interfejs lub nawigację.
3. „Potrzeba prędkości”.
Jedna z głównych zasad Inżynierii Użyteczności polega na szybkich interakcjach - „1.0 sekunda to limit, w którym przepływ myśli użytkownika pozostaje nieprzerwany”. Podczas gdy aplikacje natywne reagują i działają wystarczająco szybko, aby utrzymać użytkowników w rytmie systemu, produkty hybrydowe często są wolniejsze.
4. Natywny = bardziej wyrafinowany.
Rozwiązania międzyplatformowe działają, gdy chcesz stworzyć coś, co już istnieje, z funkcjami spoza klasy „średniej”. Jeśli chodzi o złożone rzeczy (wszystkie te modne algorytmy IoT, AR/VR, Big Data Mining znajdują się na tej liście), aplikacjom hybrydowym brakuje technicznych możliwości realizacji tego, czego chcesz. Z drugiej strony, natywne IDE i języki mają nieskończone perspektywy techniczne - można na nich napisać mnóstwo rzeczy.
Wybierz ostrożnie.
Jeśli szukasz prostej aplikacji do zbudowania (listy i nic bardziej złożonego), to React Native to strzał w dziesiątkę. Jeśli wymagana jest jakakolwiek dalsza wydajność aplikacji, pojawią się bardziej skomplikowane procedury programistyczne - musisz już przełączyć się na Swift lub Kotlin, a następnie zapakować to wszystko w błyszczącą okładkę Java Script; a to nie brzmi jak łatwa rzecz do zrobienia. Tak więc w przypadku przesyłania strumieniowego wideo lub audio, routingu, czatów w czasie rzeczywistym, edycji zdjęć itp. lepiej będzie zacząć od programowania natywnego od samego początku, unikając tych wad.
Dodatkowo React Native to kompletny framework JavaScript, a cały kod można nawet napisać w edytorze tekstowym, takim jak TextMate lub Notepad++. Chociaż jeśli chodzi o budowanie projektu, desperacko potrzebujesz konkretnego IDE lub przynajmniej emulatora.
Oto kilka przykładów przyzwoitych aplikacji opartych na RN:
- Oczywiście aplikacje na Facebooka
- Aplikacje mobilne Airbnb (hybrydowe iOS i Android)
- Aplikacja mobilna Walmart (ponieważ miała wiele wbudowanych widoków internetowych z ich niższą niż oczekiwano implementacją)
Możesz spojrzeć na całą listę produktów opartych na RN na ich oficjalnej stronie internetowej, a RN ponownie wygrywa konkurs React Native vs Xamarin tutaj.
Ze względu na perspektywę.
Według statystyk Flurry, „konsument z USA spędza dziś średnio 2 godziny i 38 minut dziennie na smartfonach i tabletach. 80% tego czasu (2 godziny i 7 minut) spędza w aplikacjach”. Twój produkt musi jakoś pasować do tych 2 godzin dziennie. Biorąc pod uwagę wszystkie punkty, framework React Native RoR byłby przydatnym rozwiązaniem dla małego, krótkookresowego projektu; recenzje dowodzą, że jest szybki, wściekły i nowy, lub gdy chcesz „przetestować koncepcję”. Niemniej jednak na dłuższą metę lub planując innowację techniczną na początek, nie możesz polegać na gotowej opcji. Potrzebujesz go zbudować od podstaw, musisz go dostosować - więc potrzebujesz go do tworzenia aplikacji natywnych.
Napisane przez Artema Chervichnika i Elinę Bessarabovą .