poniedziałek, 10 sierpnia 2009

Symbian OpenC/C++

Tempo rozwoju trochę stało się zawrotne w porównaniu do tego co było kiedyś, kiedy rozwój programowania pod Symbianem wydawał się bardzo powolny, bardzo ewolucyjny. Ostatnio właściwie nie ma dnia żeby coś nowego zaprezentowało się. Ponieważ już oficjalnie potwierdzono że Qt for S60 będzie podstawowym frameworkiem dla Symbian^4, co powoduje też zmianę funkcjonowania GUI. W praktyce oznacza że aplikacje pisane pod S60 przy użyciu frameworka AVKON nie będą uruchamiane w Symbian^4. Według mnie to nie jest żaden problem bo w praktyce komórki z S60 będą jeszcze bardzo długo produkowane przez Nokię tak jak teraz jest z S40. Na poziomie programistycznym kod Qt for S60, OpenC/OpenC++ przy niewielkich zmianach będzie chodził w Symbian^4, co powoduje szybkie przenoszenie aplikacji. Jeszcze nie do końca wiadomo jaka będzie referencyjna warstwa sprzętowa dla Symbiana^4. Obecnie preferowane są procesory ARM architektura RISC), być może przeniesienie kodu Symbiana na procesory Atom (architektura CISC) będzie sprzyjało powstaniu wydajnych notebooków / netbooków.

Warto zwrócić uwagę że tak naprawdę za rozwój Symbiana obecnie odpowiada OpenC/OpenC++. Nokia wypuściła OpenC/OpenC++ w lutym 2007 roku jako rozszerzenie do SDK S60 3rd FP1 (najpierw pod nazwą PIPS). Obecnie 2 zespoły pracują nad rozwojem tej biblioteki zespół tworzący biblioteki Qt for S60 i zespół tworzący bibliotekę Pythona (PyS60 2.0). Najciekawsza jest sytuacja programistów którzy programują pod Pythona S60. Otóz mają 2 wersje bibliotek 1.4.5 (kod zródłowy i binaria) a tymi programistami którzy rozwijają wersję Python 1.9.x (kod żródłowy i SDK) Ci ostatni mają już dostęp do kodu OpenC 3.0.

Duże zainteresowanie Pythonem sprawiło że Nokia postanowiła wypuścić usługę na komórki Nokia Web Server oparty na serwerze Apache w silniku Raccon wdrażając potem możliwość tworzenia dynamicznych skryptów opartych na Pythonie. W tym celu stworzono programistom SDK do tworzenia rozszerzeń pod ten serwer. Ponieważ na programowanie pod Python Server Pages nie było zainteresowania, z drugiej strony narzucono odpowiedni framework aplikacyjny co przy braku dobrej dokumentacji nie do końca było jasne jak programować aplikacje na Nokia Web Server. W tej sytuacji eksperymentalnie postanowiono rozwijać PAMP, umożliwiając programistom PHP łatwe przemienienie aplikacji PHP na komórki (kod zródłowy i binaria) Jest to pierwszy z większych projektów w którym użyto OpenC. Dalszy rozwój tego projektu jest zależny od fundacji Symbian czy zechce wbudować serwer jako możliwość dostępu do API aplikacji Symbiana opartych na widgetach mobilnych. Jedną z ciekawszych rzeczy w PAMP jest przeniesienie silnika bazy danych MySQL na aplikacje Symbian o czym pisze wywiad z twórca tego przedsięwzięcia Johanem Wikmanem.

Wraz z udostępnieniem bibliotek OpenC Nokia zorganizowała konkurs na przeniesienie bibliotek OpenSource wygrała aplikacja MobiTubia za przeniesienie bibliotek libavcodec, z ciekawszych aplikacji to okazało sie MobiClass 2.0

Od tej pory coraz więcej powstawało bibliotek z kodami źródłowymi pod Symbianem w konsekwencji spore zainteresowanie pod kątem kodów do aplikacji multimedialnych ( do tworzenia narzędzi i gier).

Podstawową biblioteką do obsługi multimediów okazała się biblioteka SDL (dokumentacja) a także przykład gier opartych na bazie tej biblioteki: c2Doom, Starmaze, Wolf 3D, Sinvaders, Battletamagothi. Ponieważ kod silnika Pythona jest publiczny to przeniesiono kod silnika do gier pyGame. Też sprzyjało rozwojowi różnych silników od fizyki: Chipmunk S60 (kod źródłowy) a także Symbian Open Dynamics Engine, silników do grafiki 3D dla gier mIrrlicht i Irrlicht for S60, a także popularnego silnika dla grafiki 2D Cairo, przeniesiono też popularne frameworki UI: wxWidgets, fltk-s60, GTK for Symbian. Dostępność biblioteki OpenC sprzyja przenoszeniu na platformę Symbian nowych języków skryptowych Lua i jak Ruby, czy silników baz danych takich jak SQLite. Jako ciekawostkę można potraktować bibliotekę dla Argumented Reality i jak jej implementację. W najbliższym czasie można spodziewać się wydania książki Marka Wilcoxa - Porting to the Symbian Platform : Open Mobile Development in C/C++

Brak komentarzy: