The service provided by Consileon was professional and comprehensive with a very good understanding of our needs and constrains.

Wolfgang Hafenmayer, Managing partner, LGT Venture Philanthropy

Technical quality of staff offered, capability of performing various project roles, as well as motivation and dedication to the project (... [...]

dr Walter Benzing, Head of development B2O, net mobile AG

Technical quality of staff offered, capability of performing roles of developers, lead developers, trainers, team leaders, architects as wel [...]

Karl Lohmann, Itellium Systems & Services GmbH

Firma Consileon Polska jest niezawodnym i godnym zaufania partnerem w biznesie, realizującym usługi z należytą starannością (...)

Waldemar Ściesiek, Dyrektor zarządzający IT, Polski Bank

The team was always highly motivated and professional in every aspect to perform on critical needs of our startup environment.

Denis Benic, Founder of Ink Labs

Wieloplatformowe frameworki mobilne – Titanium

W poprzednim poście przedstawiłem PhoneGap, jako framework pozwalający na tworzenie wieloplatformowych aplikacji mobilnych. W tym poście chciałbym przedstawić Titanium jako framework alternatywny, który choć bazuje na podobnym koncepcie, różni się jednak w wielu elementach od PhoneGap.

Titanium

Titanium to framework, który podobnie jak PhoneGap, pozwala na pisanie wieloplatformowych aplikacji mobilnych z wykorzystaniem HTML-a oraz JavaScript’u. W odróżnieniu jednak od PhoneGap, aplikacje nie są zwyczajnie uruchamiane jako web aplikacje w odpowiedniej kontrolce. Titanium udostępnia bogate API JavaScript-owe, które deleguje odwołania do natywnych bibliotek platformy na jakiej uruchamiana jest aplikacja. Co nam to daje? Daje nam to dostęp do natywnych kontrolek, a nasza aplikacja posiada natywny wygląd (ang. look-and-feel). Jest to niewątpliwie spora zaleta w porównaniu do tego co oferuje nam PhoneGap.

Titanium obsługuje o wiele mniej platform niż PhoneGap. Obecnie jedynie iPhone, Android i iPad, jednakże programiści tego frameworka pracują nad wsparciem dla platformy Blackberry. Co ciekawe framework Titanium pozwala na tworzenie nie tylko wieloplatformowych aplikacji mobilnych, ale także desktopowych.

Mimo, że Titanium wspiera mniejszą liczbę platform niż PhoneGap, jego API jest znacznie bogatsze. Mamy na przykład możliwość dostępu do danych zarówno lokalnych (system plików, czy wbudowana baza SQL) jak i zdalnych (web service). Pełna dokumentacja API znajduje się tutaj.

Dość ważną rzeczą jest w nauce tego frameworka jest program „Appcelerator University Training”. Program ten przedstawia w postaci filmików ogólne informacje na temat samego frameworka, oraz jego API. Niestety dostęp do filmików opisujących ważniejsze elementy frameworka jest płatny (jest to dość znany model biznesowy w którym produkt jest darmowy, a całe wsparcie techniczne i szkoleniowe płatne). Niestety na dzień dzisiejszy nie udało mi się dostać do filmików z poziomu 200, ponieważ po wypełnieniu stosownego formularza strona zwraca błąd 🙂

Pierwsza aplikacja z Titanium na platformę Android

Aby zacząć zabawę z Titanium, podobnie jak w przypadku PhoneGap, musimy zainstalować SDK dla Androida, a następnie w menadżerze odpowiednie biblioteki platform dla których chcemy tworzyć aplikację. Titanium wspiera platformy Android od 1.6 wzwyż.

Instalacja Eclipse i pluginu ADT jest w tym przypadku opcjonalna, ponieważ nie będziemy pracować na klasach Javy, ani też nie będziemy wykorzystywać tego narzędzia do uruchamiania aplikacji w emulatorze. Także wystarczy nam dowolny edytor tekstowy z kolorowaniem składni JavaScript :). Do uruchamiania i dystrybuowania aplikacji będziemy używać narzędzia Titanium Developer. Co ciekawe aplikacja ta jest napisana z wykorzystaniem frameworka Titanium, więc od razu możemy zobaczyć jakie możliwości ma ten framework.

Titanium Developer to będzie nasze centrum dowodzenia. Tutaj będziemy tworzyć projekty, uruchamiać w emulatorach, czy dystrybuować do App Store albo Google Market. Jednakże zanim zabierzemy się do tworzenia projektu musimy załatać pewnego bug-a, który występuje w wersji 1.2.1 (ponoć bug jest już załatany, ale łatka nie jest jeszcze wypuszczona więc w nowszych wersjach może nie być takiej potrzeby). Problem ten objawiał się tym, że nowo utworzonych projektów androidowych nie można było uruchamiać w emulatorze, ponieważ brakowało odpowiedniego przycisku 🙂

Co zatem należy zrobić? Ściągnąć ten plik, a następnie podmienić go w naszej instalacji Titanium. W przypadku OpenSUSE musiałem wrzucić go do:

~/.titanium/mobilesdk/linux/1.2.0/android

Zauważcie ukryty folder .titanium. Tutaj znajdziecie opis jak rozwiązać problem w przypadku Mac OSX-a.

Jeżeli jest to nasza pierwsza instalacja Titanium najpierw poprosi nas o stworzenie konta. Konto to w serwisie Appcelerator’a da nam dostęp do różnych usług (głównie płatnych). Po utworzeniu konta przechodzimy do sekcji edycji profilu i upewniamy się, że ścieżka do SDK Androida jest ustawiona. Jeżeli aplikacja sama jej nie skonfigurowała musimy ją wprowadzić.

Edycja profilu

Teraz możemy stworzyć nowy projekt. Przechodzimy do panelu projektów, klikamy „New Project” i wypełniamy formularz:

Nowy projekt

Upewniamy się, że nasze SDK Androida zostało wykryte i klikamy „Create Project”.

Titanium stworzy nam odpowiednią strukturę projektu. Możemy teraz uruchomić ją w emulatorze i zobaczyć czy wszystko jest w porządku. Przechodzimy do „Test & Package”, wybieramy wersję platformy którą chcemy emulować, a także rodzaj ekranu i poziom komunikatów (domyślnie jest to „Info”).

Uruchamianie aplikacji

Klikamy „Launch” i czekamy aż Titanium uruchomi emulator, zbuduje naszą aplikację i zainstaluje ją.

Emulacja

Działa! Widzimy także, że w odróżnieniu od PhoneGap nasza aplikacja ma natywny dla Androida wygląd. Na tym etapie zostawię tę aplikację, może jeszcze przyjdzie czas na bardziej dogłębne zapoznanie się z tym frameworkiem.

Wady i zalety

Główną zaletą frameworka Titanium jest możliwość dostępu do natywnych kontrolek platformy, przez co aplikacja posiada natywny dla tej platformy wygląd. Osiągnięto to przez mapowanie wywołań JavaScript’owych na odpowiednie wywołania API platformy na której aplikacja jest uruchomiona. Kolejną zaletą jest Titanium Developer, czyli swoiste centrum dowodzenia z poziomu którego tworzymy i zarządzamy aplikacjami.

Ogromną wadą tego frameworka jest brak możliwości debugowania naszej aplikacji inaczej niż poprzez wyświetlanie logów. Generalnie nasza aplikacja musi być uruchomiona na jakiejś konkretnej platformie przez co nie ma możliwości stworzenia zautomatyzowanych testów. Możliwe, że istnieje jakaś aplikacja do tego celu wewnątrz konkretnych platform, ale samo Titanium nie przychodzi nam tu z żadnym konkretnym rozwiązaniem.

Podsumowanie

Framework Titanium podobnie jak PhoneGap pozwala nam tworzyć wieloplatformowe aplikacje mobilne. Wyróżnikiem tego frameworka jest możliwość odwoływania się poprzez bibliotekę JavaScript’ową bezpośrednio do natywnych kontrolek, przez co nasza aplikacja wygląda i działa tak jak natywna aplikacja. Framework ten posiada także dość dobre, choć płatne, wsparcie ze strony Appcelerator’a, a także narzędzie Titanium Developer, które służy nam do uruchamiania i dystrybuowania naszych aplikacji.

Minusem jest brak wsparcia ze strony frameworku do testowania i debugowania aplikacji, co może kończyć się sporymi problemami podczas kodowania. Zastosowanie tego frameworka to, podobnie jak w przypadku PhoneGap, biznesowe aplikacje typu wypełnij formularz i przeglądaj dane.

http://michalorman.pl/blog/2010/04/wieloplatformowe-frameworki-mobilne-titanium/


Michał Orman

Full stack software developer, konsultant IT.

Niekwestionowany full stack developer, architekt rozwiązań IT, project manager, entuzjasta Agile z biznesowym zacięciem, który lubi robić rzeczy do końca. Prawdziwy człowiek orkiestra, którego największymi zaletami są nieustanne dążenie do perfekcji, produktywność, dbanie o najwyższą jakość wyprodukowanego oprogramowania. Obecnie progra­muje w Ruby on Rails i JavaScript, ale do listy znanych mu technologii bez wątpienia można dopisać Java/J2EE. Tworzył aplikacje mobilne na platformę Android, systemy wbudowane w C/C++. Zapalony wyznawca zasad SOLID lubiący proste rozwiązania oraz czysty kod. Do swojego portfolio technologicznego również może dodać Unix/Linux, VIM oraz Git.

michalorman.com


Comments

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Trwa ładowanie