niedziela, 4 kwietnia 2010

Programowanie ActionScript 3 na Symbiana

Rozwój inteligentnych komórek jest coraz szybszy, a przez to stają się coraz bardziej dostępne. Konkurencja staje się coraz bardziej zażarta. A sytuacja producentów inteligentnych komórek coraz bardziej zaczyna przypominać rynek motoryzacyjny w którym bardziej rynek skłania się do tworzenia stref wpływu a także do specjalizacji pewnych zastosowań. Bardzo trudno jest być analitykiem urządzeń mobilnych dla internetu.

Ale spróbujemy spojrzeć na tą sytuację dzisiaj w kwietniu 2010 roku, dzisiaj coraz więcej urządzeń mobilnych korzysta z internetu, ale samych aktywnych użytkowników internetu wśród komórek inteligentnych nadal jest niewielu. Przeważnie są Ci którzy dobrze znają się na internecie i na komórkach.

Otóż większość raportów jaki ja widzę w internecie opiera się na tym jakie modele komórek są najczęściej używane w internecie albo po tym ile jest programów na stronach poszczególnych producentów. Ale z punktu analityka takie dane są pochodną ilości sprzedanych komórek i kultury użytkowników.

W takim bądź razie jak należy czytać dane statystyczne z punktu widzenia programisty. Przede wszystkim należałoby poczytać o tym ile komórek wyprodukował dany producent. Bardzo zła manierą jest opieranie się na procentach pisząc że Symbian ma 49% udziału we wszystkich inteligentnych komórkach na świecie. Paradoks jest innej natury: mało który analityk zada sobie pytanie jakich komórek inteligentnych z Symbianem jest najwięcej na świecie. Skoro teraz z Symbianem mamy 3 producentów (poza japońskimi) - Samsunga, Nokię i SonyEricsona. Czytając raporty o sprzedaży inteligentnych komórek należałoby też wziąć pod uwagę że w poprzednich latach produkcja komórek z Symbianem była na bardzo wysokim poziomie. W sumie nieformalnie w skali światowej dominuje Nokia z Symbianem

Duży wpływ ma też to w jakie sposób ludzie wchodzą w posiadanie inteligentnych komórek. Na tynkach rozwiniętych z dominacją internetu Ci którzy dobrze znają internet to chętnie przeniosą się w subsydiowane komórki z iPhone czy z Androidem. Natomiast wśród telefonów biznesowych rywalizacja dotyczy tego tego czy komórki maja klawiaturę QWERTY. Tutaj dominują RIM Blackberry i Nokia z E-Series. Te firmy bardzo chcą konkurować o przedsiębiorców na wschodzących rynkach. Używanie internetu w komórce wśród przedsiębiorców nie jest najważniejsze - liczy się bezpieczeństwo i szybki dostęp do poczty elektronicznej. Natomiast na rynku wchodzących typu Afryka czy Azja (Chiny i Indie oraz Rosja) liczy się przywiązanie do marki i model w którym kupujesz od razu cały model komórki bez subsydiowania. Tutaj Nokia wygrywa na rynkach bezwzględnie cenami. Używanie internetu jest w tych krajach okazjonalne, głównie przez Operę Mini

Dla programistów najważniejsi są użytkownicy biznesowi i tacy którzy okazjonalnie używają internetu ale nie w przeglądarkach internetowych. Jest duże zapotrzebowanie na aplikacje mobilne będące klientami różnych usług internetowych takich jak Twitter, Facebook, Amazon, Flickr, wszelkiego rodzaju komunikatory, czy dostęp do platform blogowych. Biznes potrzebuje aplikacji mobilnych pozwalających na dostęp do sklepów ecommerce, wydawcy o dostęp do treści przez aplikacje mobilne, marketingowcy o lepszą reklamę na inteligentne komórki.

Programistów na urządzenia mobilne można podzielić na tych którzy muszą się czegoś nauczyć nowego (Objective-C, C++, czy Java Mobile) i takich którzy chcieliby programować w tym co już znają (ActionScript, JavaScript, czy wykorzystać frameworki takie jak Qt).

Innym problemem jest różnorodność platform programistycznych, oraz przyzwyczajeń programistów Dla kogoś kto specjalizuje się w ActionScripcie pozostaje robić aplikacje na Flash Lite tego kto zna JavaScript to widgety WebRuntime i jak widgety Opery -sporo ludzi ma komórki z Java Mobile, ale ich programowanie zniechęca więc uciekają w programowanie na Androida. Podobna sytuacja jest po stronie Symbiana, mało kto chce programować w frameworku AVKON w C++ wolą już programować w czystym C++ przy pomocy różnych frameworków UI takich jak Qt, GTK. To co ratuje taka skomplikowaną sytuację to jest fakt, że prawie wszystkie inteligentne komórki chodzą na układach scalonych z procesorami ARM. Pojawiają się próby tworzenia bibliotek cross platformowych C++.

Qt Nokii to biblioteka C++ oficjalnie wspiera Windows Mobile(WinCE), Symbian, Maemo i systemy embbeded.
Ansca Corona to biblioteka z kompilatorem C++/Lua dla Androida i iPhone (Symbiana wspiera ale nieoficjalnie jeszcze)
Ideaworks AirPlay SDK to biblioteki C++ dla Symbiana, Windows Mobile, iPhone, Androida, Maemo, oraz Brew.Jest to najbardziej zaawansowany zestaw bibliotek w C++ dla Symbiana
MoSync SDK to biblioteki C++/JavaMobile dla Symbiana, Windows Mobile, Moblina a dojdzie wsparcie dla Androida, Maemo i iPhone.
OpenPlug z Elips Studio 3 to nakładka na Flex Buildera 3 pozwalająca napisać kod w ActionScript 3 którzy zostanie przekonwertowany na kod C++ i skompilowany pod odpowiednią platformę. Obsługuje Windows Mobile, Symbiana, Androida i iPhone.

Ponieważ mam już dostęp do wersji testowych Elips Studio 3 z OpenPlug to od samego początku to mam dziwne odczucia. Pierwsza beta nie działała dobrze pod Symbianem S60 5th, w następnej dodano obsługę Symbiana S60 3rd. Kolejne bety działały już coraz lepiej z kompilacją. Zastanawia mnie to że za każdym razem jak zainstaluję kolejną wersję ElipsStudio to muszę poprawiać plik wsadowy do uruchomienia. Po kilku próbach wyszło mi że muszę mieć tak napisany:

"E:\Program Files\OpenPlug\ELIPSStudio3.0\elips3.bat" E:\PROGRA~1\OpenPlug\ELIPSS~1.0 "E:\FlexBuilder3"

Początkowo myślałem że ma znaczenie jaka jest ścieżka do programu. ale okazało sie że działa to całkiem niezależnie od kompilatora CSL. Tylko kompiluje własnym z
E:\Program Files\OpenPlug\ELIPSStudio3.0\Tools\gcc\arm_elf\
i korzysta z własnego make.

W praktyce zauważyłem że w E:\OpenPlug\My Environments\ELIPS_3_0_1_235 jest sporo plików nagłówkowych i powiązanych z tym plików *.lib, kóre podczas kompilacji są łączone podczas kompilacji w jedną wielką bibliotekę.

Po ustawieniu środowiska Flex Buildera 3 że ma kompilować pod Nokię 5800 i gdy kliknę że ma skompilować pod środowisko dla Nokii zaczyna się długotrwały proces kompilacji. Najpierw generowane są pliki do E:\OpenPlug\My Systems\Flex_My Systems\ do 3 folderów (zakładając że zaimportowałem demo VideoApp):
E:\OpenPlug\My Systems\Flex_My Systems\VideoApp które zawiera kod przekowertowany z AS3 na C++ co ląduje do podfolderu elips_bin a następnie kompilator tworzy pliki dla assemblera ARM (*.o) które są w podfolderze ARM_Packages_Release W dalszym ciągu linkier łączy wszystkie biblioteki *.lib z istotniejszymi plikami *.o i kopiuje to wszystko do E:\OpenPlug\My Systems\Flex_My Systems\VideoApp_exe\ARM_Packages_Release gdzie efektem końcowym jest plik op (który często jest bardzo duży - 8MB). Ten plik to tak naprawdę jedna wielka biblioteka zawierająca w sobie wiele rożnych bibliotek. Dla Symbiana używa biblioteki gtk i bazującego na nim biblioteki C++ odwzorcowujące framework Flex, oraz biblioteki używających do stworzenia własnej biblioteki FlashPlayera w C++. Efektem końcowym jest stworzenie folderu E:\OpenPlug\My Systems\Flex_My Systems\VideoApp_cab\ARM_Packages_Release którzy tworzy plik uruchomieniowy dla pliku biblioteki op oraz tworzy paczkę SIS z tymi plikami.
Plik SIS osiąga bardzo duży rozmiar (powyżej 5MB) i zawsze instaluje się na dysku C.
Oczywiście, że można samemu przygotować własną wersję pliku *.pkg i wygenerować własny SIS.

To co jest plusem to szybkie tworzenie bardzo fajnych aplikacji z przyjaznym UI dla użytkownika. Jest możliwość wykorzystania szeregu bibliotek w czystym AS3.
To co wymagałoby inwestycji ze strony programisty to zaopatrzenie się w szybkie dyski SSD w celu dokonywania w nim kompilacji w rozsądnym czasie. Spowodowane jest to tym że w czasie kompilacji może wygenerować ponad 300 plików i potrzebować ponad 200 MB miejsca na dysku dla jednej kompilacji. W takim razie kompilacja trwa na słabych komputerach bardzo długo. Nadal to jest beta - więc najbardziej denerwuje brak obsługi znaków unicode w polach typu input. Uruchamianie aplikacji też nie wygląda na ciekawe doznanie - zachowuje się tak jakby komórka miała zaraz paść - wyświetlacz dziwnie migocze.
W takim bądź razie gdyby trzeba było szybko tworzyć prostą aplikację reklamową pisząc w ActionScript3 na Symbiana i Windows Mobile oraz iPhone oraz rozmiar aplikacji nie ma znaczenia to polecam do tego Elips Studio 3

Brak komentarzy: