Wieloplatformowe a natywne aplikacje mobilne

(Jacob Muchow ) (15 października 2020 r.)

Zaprojektowane przez

Wprowadzenie

Aplikacje wieloplatformowe stały się rozwiązaniem rynkowym dla wielu startupów z branży technologicznej. Obiecują, że będą mogli łatwo napisać jedną bazę kodu, która zostanie wdrożona zarówno na urządzeniach z systemem iOS, jak i Android. Jednak wiele firm nadal wybiera tradycyjną ścieżkę i rozwija się natywnie pomimo potencjalnych zalet.

Oba rozwiązania są ważne – nie ma jednej „właściwej” drogi (przynajmniej jeszcze nie teraz! ). Wybór właściwej ścieżki rozwoju dla Twojego zespołu zależy od Twoich celów i ograniczeń, a wybór technologii powinien wynikać bardziej z tego niż z osobistego przekonania. W tym poście dokonamy porównania między dwiema opcjami, aby pomóc Ci podjąć najlepszą decyzję dla Twojej firmy.

Międzyplatformowe

Obecnie istnieje kilka konkurujących ze sobą opcji rozwoju międzyplatformowego : React Native, Flutter, Xamarin, Ionic, aby nazwać te główne. W tym poście unikniemy wyjaśniania każdego z nich i omówimy wady / zalety programowania na wiele platform jako całości.

Każda z tych platform umożliwia zespołowi napisanie kodu dla jednej aplikacji, można wdrożyć zarówno w Google Play Store, jak i App Store. Potencjał oszczędności kosztów jest oczywiście ogromny, jeśli zostanie wykonany efektywnie.

Zalety międzyplatformowe

  • Możliwe jest dostarczanie na oba rynki mobilne przy znacznie niższym budżecie niż zajęłoby dwóch opracowywanie dwóch oddzielnych aplikacji natywnych. Około 60–70\% kodu można udostępniać, a pozostała część jest niestandardowa dla obu platform.
  • Możesz mieć jeden zespół programistów mobilnych, co upraszcza organizację. Może to również przynieść korzyści w postaci pewnej spójności w aplikacjach na Androida i iOS, która jest trudna do osiągnięcia w inny sposób.
  • W zależności od wybranej technologii, możesz mieć programistów, którzy są już zaznajomieni z językami i stylami programowania. (JavaScript, C # / .NET, Dart). Możesz zbudować zespół bez konieczności rozpoczynania rekrutacji od podstaw.
  • Nowe funkcje są wdrażane jednocześnie na urządzeniach z systemem iOS i Android, zamiast mieć „lidera funkcji”.

Wady międzyplatformowego

  • Znacznie trudniej jest zatrudnić programistów doświadczonych w tej technologii w porównaniu z natywnymi.
  • Kiedy to robisz natrafisz na przeszkodę, często rozwiązanie problemu wymaga naprawdę wysoko wykwalifikowanego inżyniera.
  • Funkcje specyficzne dla systemu iOS lub Android (np. Health Kit / Apple Watch) są niezwykle trudne lub niemożliwe do wykorzystania.
  • Tworzenie skomplikowanego interfejsu użytkownika / UX trwa znacznie dłużej niż natywnego. Jeśli nie ma gotowego komponentu, należy utworzyć niestandardowy dla obu platform, co jest czasochłonne.
  • Wiele platform często nie jest tak wydajnych jak natywny, co czasami powoduje jakiś kłopot, którego tak naprawdę nie da się rozwiązać. Ma to większy wpływ na bardziej złożoną aplikację.
  • Technologie mają mniej dojrzałe ekosystemy niż natywne. Oznacza to mniej narzędzi do wykorzystania przez Twój zespół i mniejszą pomoc dostępną, gdy napotkają problemy.
  • Aplikacje nie „przypominają” aplikacje na iOS lub Androida. Tworzą one nieznane użytkownikowi doświadczenia, co może sprawić, że aplikacja będzie nieatrakcyjna.
  • Istnieje ryzyko zaniku wybranej technologii i utraty wsparcia społeczności, twórcy lub firmy.

Kiedy sensowne jest korzystanie z wielu platform

  • Chcesz kierować swoje MVP zarówno na rynki Androida, jak i iOS.
  • Ograniczony budżet na urządzenia mobilne jest jednym z głównych ograniczenia.
  • Twoja aplikacja mobilna nie jest kluczową częścią Twojej firmy.
  • Doświadczenie użytkownika powinno być standardowe w przypadku Twoich aplikacji i nie chcesz „czuć się” jak iOS lub Android app.
  • Twoja aplikacja jest prosta w obsłudze i funkcjach.
  • Twoje projekty są prawie identyczne na obu platformach.

Nasze przemyślenia

Technologie wieloplatformowe to świetny sposób na szybkie dotarcie na rynek i dotarcie do jak najszerszej grupy odbiorców i zweryfikowanie pomysłu. Jeśli Twoja aplikacja nie będzie wymagać technologii specyficznych dla platformy, skomplikowanego interfejsu użytkownika / UX lub złożonej logiki biznesowej, zdecydowanie powinieneś rozważyć rozwiązanie wieloplatformowe. Po uzyskaniu MVP, może to pozwolić Ci całkowicie skupić się na iteracji produktu, podczas gdy przejście na wersję natywną może oznaczać, że będziesz musiał rozważyć stworzenie zupełnie nowego zespołu / aplikacji na iOS lub Androida. Natywny może być zawsze dostępny później, jeśli zajdzie taka potrzeba.

Natywny programowanie

„Natywny” programowanie odnosi się do tradycyjnego stylu tworzenia całej aplikacji przy użyciu własnych narzędzi dostarczonych przez Apple i Google dla iOS i Android.Ekosystemy ewoluowały, ale obecnie standardem branżowym jest używanie Android Studio & języka programowania Kotlin na Androida i Xcode & Szybki język programowania na iOS.

Takie podejście wymaga posiadania dwóch oddzielnych baz kodu dla każdej aplikacji. Zespoły zazwyczaj skupiają się inżynierów na jednej lub drugiej platformie, a czasami mają dwa całkowicie oddzielne zespoły programistyczne dla każdej platformy.

Często firmy najpierw publikują swoje aplikacje w App Store lub Google Play i skoncentruj się na iteracji produktu. Jeśli dostarczanie aplikacji na inną platformę jest częścią ich strategii, gdy uzyskają przyczepność lub sukces i wystarczające fundusze, zainwestują w zbudowanie zespołu do obsługi drugiej platformy.

Zalety programowania natywnego

  • Aplikacje mogą korzystać ze wszystkich funkcji specyficznych dla systemu iOS lub Android.
  • Doświadczenie użytkownika można dostosować w większym lub mniejszym stopniu do tego, czego oczekuje użytkownik systemu iOS lub Android.
  • Niestandardowy, skomplikowany interfejs użytkownika jest ogólnie o wiele łatwiejszy do opracowania.
  • Jeśli występuje złożone przetwarzanie w tle, będzie to działać płynniej niż na wielu platformach ze względu na ograniczenia techniczne.
  • Natywne aplikacje dobrze „czują się lepiej” w sposób, którego nie obsługują obecnie aplikacje wieloplatformowe.
  • Twój następujący zespół powinien dość szybko dogonić Twój pierwszy zespół. Nie będą musieli przechodzić przez te same błędy i nauki, które popełnił pierwszy zespół.
  • Jeśli chodzi o rynek pracy, jest znacznie więcej programistów doświadczonych w natywnym programowaniu na iOS lub Androida. Twoje zatrudnienie będzie znacznie prostsze.
  • Narzędzia i wsparcie społeczności były rozwijane od samego początku istnienia aplikacji mobilnych i są znacznie bardziej niezawodne i dojrzałe.
  • Jeśli możesz to sobie wyobrazić, często można to zrobić w 99\% przypadków.

Wady programowania natywnego

  • Finansowanie natywnych aplikacji zarówno na iOS, jak i Androida może być bardzo kosztowne .
  • Zasadniczo potrzebujesz dwóch zespołów programistów, aby dostarczyć je obu.
  • Następująca platforma często pozostaje w tyle pod względem funkcji i może być trudno osiągnąć parzystość.
  • Osiągnięcie spójności między aplikacjami i zespołami iOS i Android jest trudne.

Kiedy warto przejść na język natywny

  • Obchodzi Cię to głęboko o dopracowanym, wysokiej jakości lub imponującym doświadczeniu użytkownika.
  • Chcesz skorzystać z funkcji platformy (np. integracji Health Kit / Apple Watch).
  • Masz Funkcje wymagające dużych obliczeń, takie jak wideo lub transmisja na żywo.
  • To nie jest cześć bardzo ważne, abyś na początku dotarł do jak najszerszego grona odbiorców.
  • Kierujesz reklamy na określoną grupę demograficzną, która zwykle korzysta z jednej lub drugiej platformy.
  • Gdy Twoje projekty w dużym stopniu wykorzystują komponenty natywne i stylów.

Nasze przemyślenia

Jeśli chcesz dostarczać aplikację o bardzo wysokiej jakości, która wydaje się najbardziej naturalna lub satysfakcjonująca dla użytkownika, albo musisz zintegrować ściśle z natywnymi interfejsami API i funkcjami obu platform, najlepszym rozwiązaniem jest natywny. Nawet jeśli przewidujesz to w przyszłości, powinieneś rozważyć zrobienie czegoś rodzimego. Kiedy wszystko idzie gładko, tworzenie dwóch natywnych aplikacji jest znacznie droższe. Jeśli napotkasz przeszkodę w zakresie funkcji, które możesz utworzyć, często można je rozwiązać w natywnym języku, podczas gdy między platformami możesz wyrywać sobie włosy z głowy.

Wniosek

Na QuarkWorks, mamy doświadczenie w tworzeniu różnych technologii wieloplatformowych, a także bogate doświadczenie w tworzeniu natywnych od momentu powstania App Store.

Nie ma „jednej prawdziwej drogi”, jeśli chodzi o tworzenie aplikacji mobilnych. Jeśli chodzi o opracowywanie lekkich prototypów i MVP, podoba nam się koncepcja korzystania z wielu platform, jeśli to możliwe, aby szybko przekazać nasze pomysły w ręce jak największej liczby odbiorców. Jeśli jednak chcemy stworzyć coś perfekcyjnego i naprawdę zapewnić najwyższą jakość obsługi, nadal wolimy korzystać z natywnego programowania.

Doceniamy aplikacje, które po prostu „czują się” dobrze i nie ma na to sposobu aby odtworzyć to uczucie zupełnie takie samo w przypadku technologii wieloplatformowej. Jesteśmy podekscytowani niektórymi nowymi rozwiązaniami, takimi jak Flutter, które mają na celu zapewnienie nie tylko jednej bazy kodu dla urządzeń mobilnych, ale także możliwość współdzielenia kodu między telefonem komórkowym a internetem. Robi to wszystko, będąc równie wydajnym jak aplikacje natywne. Chociaż nie jest to idealne rozwiązanie, postrzegamy to jako metaforyczny Święty Graal, który branża może pewnego dnia osiągnąć.

Obecnie wiele z tych technologii obiecuje to, ale zawodzi w sposób, który może być naprawdę frustrujący pracować.

Jak zawsze, QuarkWorks służy pomocą przy każdym projekcie aplikacji – sieci, mobilne i nie tylko! Jeśli jesteś zainteresowany naszymi usługami, odwiedź naszą witrynę .Chętnie odpowiemy na wszelkie pytania! Po prostu skontaktuj się z nami na naszym Twitterze , Facebooku , LinkedIn lub Instagram .

QuarkWorks – Strona główna

Czysty, dobrze udokumentowany i przetestowany kod jest podstawą każdego udanego projektu. Ściśle współpracujemy z Twoim…

quarkworks.co