Lekcja 7: W jakiej technologii stworzyć aplikację mobilną?

Lekcja wideo (4 min 32 sekundy)

Podsumowanie

Istnieje wiele techonologii, które mogą zostać wykorzystane do tworzenia aplikacji mobilnych. Zwykle wybór odpowiedniej to balansowanie pomiędzy kosztem wytworzenia, a jakością aplikacji.

Po pierwsze można zastosować podejście natywne, czyli stworzyć osobną aplikację dla każdej platformy, korzystając z narzędzi udostępnionych przez twórcę platformy. W takim przypadku mamy aplikacje działające i wyglądające tak dobrze jak to tylko możliwe. Niestety oznacza to wysokie koszty.

Drugie podejście to tworzenie aplikacji Cross-Platform, czyli stworzenie jednego projektu, na podstawie którego generowane będą aplikcje na poszczególne platformy. W tym przypadku mamy mniejsze koszty, ponieważ musimy utrzymywać i rozwijać tylko jeden projekt, ale mniejsze możliwości dopasowania do specyfiki poszczególnych platform.

Trzecie podejście to podejście hybrydowe, gdzie aplikacja jest opakowaniem dla strony mobilnej. W rozwiązaniu tym koszt wytworzenia jest najmniejszy, ale najmniejsze są też możliwości dopasowania do platformy oraz jakość aplikacji.

Wybór najlepszej technologii dla danego projektu zależy zwykle od:

  • liczby platform, na które aplikacja ma powstać,
  • dostępnego budżetu,
  • wymagań odnośnie do dostępu do specyficznych funkcji np. NFC,
  • oczekiwań odnośnie do wyglądu aplikacji na poszczególnych platformach.

Transkrypcja

Witaj w siódmej lekcji kursu Mobile Academy. Dzisiaj zajmiemy się tym, jaką technologie użyć, aby stworzyć swoją aplikację mobilną. Technologii jest kilka.

Narzędzia natywne dla platformy

Najczęściej korzysta się z aplikacji natywnych, czyli tworzy się aplikacje z myślą o konkretnej platformie. W tym celu wykorzystujemy technologię, którą udostępniają producenci danej platformy. Przykładowo, jeśli chodzi o Androida, mamy narzędzie Android Studio, w którym można wykorzystywać język Java, dla IOS'a mamy narzędzie X-Coat, w którym możemy programować zarówno w Objective C, jak i w Swift-cie, a w przypadku Windows Phone'a mamy narzędzie Visual Studio, w którym możemy programować w języku C#. I to są takie standardowe rozwiązania, których się najczęściej używa. Te rozwiązania dają przede wszystkim możliwość dostępu do wszystkich funkcji udostępnianych na daną platformę. Jednak jest jeden podstawowy problem. Tak naprawdę musimy tworzyć trzy niezależne aplikacje, które są trzema zupełnie odrębnymi projektami i teraz jakakolwiek zmiana, którą dokonamy w którymś z tych projektów, musi być odzwierciedlona w pozostałych projektach.

Na szczęście istnieje gama rozwiązań, które umożliwiają napisanie raz kodu, a następnie wygenerowanie aplikacji dla poszczególnych platform. Takie rozwiązania korzystają z faktu, że pewne funkcjonalności aplikacji mobilnych są identyczne na dużej części platform. W związku z tym można stworzyć taki wspólny element, który będzie identycznie działał na wszystkich platformach. Nie będzie on idealnie odwzorowywał tego, jak aplikacja powinna wyglądać i zachowywać się na poszczególnej platformie, ale za to oszczędza bardzo dużo czasu i pracy. Istnieje kilka klas rozwiązań, które pozwalają uzyskać tego typu produkty.

Narzędzia cross-platform

Pierwszym rozwiązaniem są narzędzia Cross-Platform. W przypadku narzędzi Cross-Platform tak naprawdę mamy aplikację stworzoną w jakimś określonym języku i ta aplikacja jest przekształcana na aplikacje natywne dla danego języka. Czyli tak naprawdę w przypadku na przykład Xamarin’a piszemy w języku C#, a następnie generowane są aplikacje: jedna aplikacja dla Androida, jedna aplikacja dla IOS’a i jedna aplikacja dla Windows Phone’a. Każda z tych aplikacji jest mniej więcej tak szybka, jak gdybyśmy napisali ją w języku czy w narzędziu dedykowanym dla tej platformy. Zaletą tych rozwiązań jest fakt, że część kodu jest wspólna i identyczna dla wszystkich platform. Dzięki temu zaoszczędzamy dużo czasu no i przede wszystkim pieniędzy.

Aplikacje hybrydowe

Drugie podejście, które w chwili obecnej jest już mniej stosowane, ale też jeszcze znajduje zastosowanie, to aplikacje hybrydowe. W przypadku aplikacji hybrydowych mamy tak naprawdę aplikacje stworzone na poszczególne platformy, które w środku zawierają aplikację napisaną w językach HTML i JavaScript, dzięki czemu mamy taką część wspólną, która jest identyczna na wszystkich platformach, a jednocześnie mamy wygląd, który przypomina aplikacje. Tak naprawdę podstawowym ograniczeniem tej technologii jest fakt, że mamy tutaj, niestety, wykonywanie całej logiki wewnątrz przeglądarki internetowej, co powoduje, że aplikacje te są dużo wolniejsze, czy to aplikacje natywne, czy aplikacje stworzone przy użyciu narzędzi Cross-Platform.

Silniki do gier

Trzecim popularnym rozwiązaniem, zwłaszcza w przypadku, jeżeli tworzymy gry lub aplikacje multimedialne, jest wykorzystywanie silników do gier. W chwili obecnej istnieje kilka dosyć sprawdzonych rozwiązań, które stanowią taki standard, jeśli chodzi o tworzenie gier. Przykładowo narzędzia Unity 3D czy Corona 2D są bardzo często wykorzystywane po to, aby stworzyć jedną grę, którą można uruchamiać na wielu platformach. Jeżeli twoim celem jest stworzenie gry, zalecam użycie jednego z tych silników, ponieważ oszczędzi to znacznie koszty, jeśli chodzi o tworzenie wersji na poszczególne platformy. Tak, więc znasz już możliwości, jakie masz, jeśli chodzi o tworzenie aplikacji.


### W kolejnej lekcji W kolejnej lekcji zajmiemy się technologiami, których możesz użyć po to, aby stworzyć stronę mobilną. Zapraszam do kolejnej lekcji. Jak zwykle możesz się ze mną skontaktować pisząc na adres sylwester@byoutline.com, lub korzystając z innych kanałów. Do zobaczenia.

Dodatkowe materiały

Prezentacja z lekcji nr 7
Prezentacja w formacie PDF.

Hybrid vs Native Mobile Apps – The Answer is Clear (ENG)
Artykuł porównujący różne podejścia do tworzenia aplikacji.

Xamarin (ENG)
Narzędzie do tworzenia aplikacji na wiele platform jednocześnie z użyciem języka C#. Popularny do tworzenia wewnętrznych aplikacji dla dużych firm.

Appcelerator (ENG)
Narzędzie do tworzenia aplikacji na wiele platform jednocześnie z użyciem języka JavaScript.

React Native (ENG)
Narzędzie stworzone przez Facebook’a do tworzenia aplikacji na iOS i Android w języku JavaScript.

Visual C++ Cross-Platform Mobile (ENG)
Narzędzie do tworzenia aplikacji na wiele platform jednocześnie z użyciem języka C++.

IONIC Framework (ENG)
Narzędzie do tworzenia aplikacji hybrydowych.

Adobe PhoneGap (ENG)
Narzędzie do tworzenia aplikacji hybrydowych.

Unity 3D (ENG)
Najpopularniejsze narzędzie do tworzenia gier mobilnych i nie tylko.

Corona 2D (ENG)
Silnik do tworzenia gier 2D. Dużo prostszy od Unity 3d.

Marmalade (ENG)
Narzędzie do tworzenia gier w języku C++. Używane głównie przez duże studia.

libGDX (ENG)
Darmowy silnik do tworzenia gier. Dostępny jako Open Source.

Zadanie do wykonania

Zastanów się, które z technologii będą odpowiednie dla Twojego produktu?

Odpowiedz na pytania:

  1. Czy chcesz stworzyć grę?
  2. Jakie platformy chcesz wspierać?
  3. Czy będziesz korzystać z funkcji sprzętowych lub zaawansowanych funkcji dostępnych tylko na wybranych systemach?
  4. Czy koszt stworzenia osobnych aplikacji na każdą z platform jest problemem?
  5. Czy szybkość działania aplikacji i płynność animacji są kluczowe dla odbioru produktu?