Cordova w skrócie, to API pozwalające stworzyć natywną aplikację używając do tego wyłącznie HTML, CSS i JavaScript. Przy jednoczesnym dostępie do np wibracji, aparatu, geolokalizacji, książki kontaktów i tym podobnych właściwości telefonu. W przeciwieństwie do aplikacji webowych, których są pozbawione takiej możliwości przez ograniczenia narzucone przez przeglądarkę. Dodatkowo aplikacje pisane w ten sposób przy niewielkim nakładzie pracy mogą znaleźć się na wiodących platformach, ios, Andorid, BlackBerry.
Oczywiście jak wszystko, rozwiązanie to niesie ze sobą tyle plusów jak i minusów. Przed wybraniem tego rozwiązania należy odpowiedzieć sobie na pytanie czy na pewno wystarczy nam technologia webowa? Ponieważ cordova to nic innego jak maszyna wirtualna z Apache na pokładzie. To tak jakby uruchomić lokalnie aplikację webową.
W tym krótkim artykule chciałbym przedstawić proces instalacji pakietu Cordova oraz szybkie uruchomienie „HelloWorld” na urządzeniu z Androidem i dodatkowo pomóc przy problemach z tym związanymi (A przynajmniej tymi, które osobiście napotkałem)
Instalacja
Zaczynając od początku, do zainstalowania większości potrzebnych rzeczy będziemy potrzebowali Terminala oraz menadżera pakietów Node.js – npm.
Gdy już go posiadamy, wpisujemy komendę:
$ sudo npm install -g cordova
Z racji tego, że wykonujemy instalacji jako root, system poprosi nas o autoryzację. Po tym nastąpi instalacja, podczas której wszystko poszło raczej sprawnie. Na koniec możemy sprawdzić wersję aktualnej Cordovy wpisując w konsoli:
cordova -version
Jeżeli wszystko się udało powinniśmy zobaczyć aktualną wersję, w moim przypadku jest to: 3.4.1-0.1.0
Tworzenie aplikacji „Hello World”
Na początek przechodzimy do folderu w którym chcemy umieścić nasz projekt, dla przypomnienia dla tych, którzy mogą być na bakier z konsolą tak jak ja. Do przechodzenia między folderami używamy komendy cd a jeżeli chcemy wyświetlić zawartość katalogu, możemy użyć komendy ls (z tego co pamięta na Windowsie dir). Następnie dzięki poniższej komendzie tworzymy nowy projekt:
$ cordova create hello com.example.hello HelloWorld
Pierwsze argument hello to nazwa katalogu w którym zostaną stworzone wszystkie potrzebne pliki do naszego projektu. Drugi argument: com.example.hello to tak zwany „reverse domain-style identifier” czyli identyfikator na podstawie odwróconej nazwy Twojej domeny firmowej, czy coś w tym rodzaju. Powiem szczerze, że mam z tym lekki problem, nie znalazłem sensownych informacji dotyczących tego czy mogę pisać na przykład: pl.nenek.appname wydaje mi się to logiczne… No i trzeci argument czyli nazwa aplikacji, która wyświetla się między innymi pod ikoną :) Ten argument jest opcjonalny, ale raczej bym z niego nie rezygnował. Jeżeli jednak tak wybierzecie, możecie zawsze dokonać zmiany nazwy waszej aplikacji w pliku config.xml
Dodawanie platformy
Kolejnym krokiem jest dodanie do naszego projektu platformy, na którą chcemy wypuścić aplikację. Akurat w moim przypadku jest to Android, więc najpierw przechodzimy do folderu naszego projektu:
$ cd hello
A następnie dodajemy platformę:
$ cordova platform add android
I w tym momencie zaczęły się problemy… Pierwszym z nich był komunikat:
[error] An error occured during creation of android sub-project. ERROR : executing command 'ant', make sure you have ant installed and added to your path.
poszukałem trochę i udało mi się znaleźć rozwiązanie tutaj. Pierwsze co robimy to instalujemy Homebrew brakujące pakiety w OSX, najpierw ściągamy:
$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
Następnie instalujemy:
$ brew install ant
Przejdźmy dalej – Kolejny błąd:
Error: The command "android" failed. Make sure you have the latest Android SDK installed, and the "android" command (inside the tools/ folder) is added to your path.
Przede wszystkim, żeby dodać platformę androida, musimy mieć na dysku SDK, które można pobrać stąd: http://developer.android.com/sdk/index.html?hl=sk
następnie wywołać komendę pamiętając o wymianie <path_to_android_sdk> na własną, w moim przypadku (/Users/daniel/Documents/ANDROID_SDK) z zachowaniem wielkości liter:
$ export PATH=/<path_to_android_sdk>/sdk/platform-tools:/<path_to_android_sdk>/sdk/tools:$PATH
— Edit 20140614:
Zauważyłem, że powyższa metoda musi być powtarzana za każdym razem gdy włączamy nową konsolę – dość upierdliwe. Dlatego:
- Przechodzimy do home:
$ cd
- Tworzymy ukryty plik .profile:
touch .profile
- Otwieramy nowo utworzony plik:
open -e .profile
- Wpisujemy tą samą komendę:
export PATH=/<path_to_android_sdk>/sdk/platform-tools:/<path_to_android_sdk>/sdk/tools:$PATH
- zapisujemy i włączamy jeszcze raz terminal.
Rozwiązanie to znalazłem tutaj, ale trzeba było trochę skorygować poradę ponieważ podawana tam komenda jest niewłaściwa.
— Koniec edycji —
Po tym dodanie platformy Andorid powinno pójść gładko. Na koniec kilka przydatnych komend do kompilowania projektu:
$ cordova build
$ cordova emulate android
$ cordova run android
Tyle na dzisiaj. Dzięki.