Aplikacje mobilne - jak zacząć

Aplikacje mobilne - jak zacząć

Zaczynając naukę programowania stoi przed Tobą wiele wyborów. Ten, który najbardziej wszystkich trapi to wybór języka programowania. Decyzja ta jest mocno związana ze specyfiką projektów w jakich będziesz chciał brać udział.  Chcesz pisać aplikacje webowe? Desktopowe? A może, no właśnie, mobilne? Dziś przedstawię Ci co trzeba wiedzieć, aby zacząć pisać aplikacje mobilne.

Definicja

Dla porządku, zaczniemy od krótkiego wyjaśnienia, czym właściwie są aplikacje mobilne. W skrócie jest to oprogramowanie działające na urządzeniach przenośnych, czyli głównie na smartphonach i tabletach.

Sytuacja na rynku

Z aplikacjami mobilnymi w stosunku do webowych problem jest taki, że nie są one uniwersalne dla wszystkich dostępnych na rynku urządzeń. Sytuacje odwrotna niż przy aplikacjach webowych, gdzie raz napisana aplikacja, choćby przy użyciu wyłącznie HTMLa i JavaScriptu, otwiera się w każdej przeglądarce internetowej, a to oznacza, że na wszystkich urządzeniach i systemach operacyjnych.

Jak to wygląda konkretnie w świecie mobile:

asd

Aktualnie mamy dwóch głównych graczy – iOS oraz Android. Z niszowym udziałem jest jeszcze Windows Phone, ale z powodu tak małego udziału w rynku można sobie nim głowy nie zawracać. Z pewnością lepiej jest się zainteresować pozostałymi dwoma platformami.

Jak pisać aplikacje mobilne?

Dwie rzeczy, które nas najbardziej będą interesować to język programowania oraz narzędzia, które niestety w zależności od wybranej platformy się różnią. Jak to wygląda:

  •  iOS

– język: Objective-C lub Swift,

– narzędzia: środowisko programistyczne XCode oraz niestety trzeba mieć dostęp do Maca (oczywiście zawsze jest jakieś wyjście i w zastępstwie za Maca możemy próbować wykorzystać maszynę wirtualną, bądź inne dostępne rozwiązania – sprawdź wyczerpujący komentarz użytkownika poniżej postu)

  • Android

– język: java,

– narzędzia: środowisko programistyczne Android Studio.

No właśnie i co teraz? Dwie główne platformy, którymi warto się zainteresować jeżeli chcemy pisać aplikacje mobilne i praktycznie dwa różne światy. Co więcej różnica w języku programowania oraz środowisku programistycznym to nie wszystko. Na obie platformy tworzymy aplikacje na dwa różne sposoby, które w wielu miejscach mogą od siebie znacznie odbiegać. Nie mamy tutaj jednego wyznaczonego standardu, który trzyma twórców Androida i iOSa w ryzach, jak np. w przypadku przeglądarek i związanym z nimi web developmentem.

Dołóżmy do tego Windows Phona (bo powiedzmy, że zaszła taka potrzeba) i dostajemy kolejny język, kolejne środowisko, kolejne koncepty itd. itd. itd. Ogólnie rzecz biorąc – jest średnio.

Jeszcze więcej zamieszania

Wszystko o czym powiedzieliśmy sobie w poprzednim punkcie to tzw. „native development”, czyli programujemy dla danej platformy w jej konkretnym języku. Problem jest taki, że jak widać sporo z tym wszystkim zamieszania. A jak sporo zamieszania to koszt wytworzenia również jest spory.

Aby obniżyć między innymi koszt wytworzenia aplikacji, koszt utrzymania i skrócić czas w jakim aplikacja jest dostarczana pojawiło się na rynku parę nowych narzędzi. Chodzi tutaj o tzw. aplikacje hybrydowe i cross-platformowe, które umożliwiają wytworzenie aplikacji na wszystkie platformy przy użyciu jednego języka programowania.

Czy to oznacza, że jesteśmy uratowani? Nie musimy przejmować się „native developmentem” i możemy pisać aplikacje w prosty, jednolity sposób? Nie do końca. Wszystko ma swoje zalety, ale też wady. Więcej o porównaniu dostępnych narzędzi przeczytasz tutaj 🙂

Specyfika projektów

Na koniec warto jeszcze zwrócić uwagę na samą charakterystykę projektów aplikacji mobilnych.

Z większością, z którą miałem do czynienia sprawa wyglądała dość odmienne od projektów aplikacji webowych, których czas wytwarzania może trwać latami i wymagać pracy zespołu składającego się z dziesiątków programistów. Wyjątki się zdarzają (z pewnością będą to gry) jednak można zauważyć, że standardowo aplikacje mobilne są to dużo mniejsze projekty. Często wykonywane nawet przez pojedynczych programistów.

Urządzenia mobilne mają ograniczone zasoby nie wspominając już o baterii. Z tego powodu aplikacja mobilna musi być jak najlżejsza. Wszystkie operacje, które wymagają skomplikowanego przetwarzania lepiej jest oddelegować do serwera. Ostatecznie nasza aplikacja mobilna często okazuje się relatywnie prostym projektem, gdzie dane dostarczane są z zewnętrznego źródła, a sam projekt skupionym jest głównie na interfejsie użytkownika. Nie oznacza to oczywiście, że będąc programistą aplikacji mobilnych nie będziesz miał co robić. Zapotrzebowanie na rynku jest równie ogromne co na programistów aplikacji webowych.

I co teraz?

Po pierwsze nie można dać się zwariować!

Zaczynając z popularnymi aplikacjami webowymi też mamy dużo języków do wyboru i jeszcze więcej frameworków. Nie znaczy to jednak, że trzeba znać je wszystkie, żeby być dobrym, a nawet bardzo dobrym programistą. Tak samo jest w świece mobile.

Jeżeli bardzo interesują Cię aplikacje mobilne to możesz spokojnie skupić się na jednej platformie i pracę też sobie znajdziesz bez większego problemu. Znam co najmniej parę takich osób, które są wyłącznie programistami np. Androida i nie ma w tym nic złego. Możesz zainteresować się również wspomnianymi narzędziami, które umożliwiają tworzenie aplikacji cross-platformowych. Już wkrótce dodam obszerny artykuł na ich temat 🙂