niedziela, 31 maja 2009

Przykłady w Symbian C++ dla S60

Spodziewam się bardzo dużego zainteresowania programowaniem na Symbiana w C++ czy w OpenC na bazie frameworka UI dla S60 AVKON a w przyszłości pod frameworkiem Qt for S60 Natomiast programowaniem UI dla UIQ można zainteresować się w przypadku gdy jest taka potrzeba programowania na komórki SonyEricssona.

Poniższy spis przykładów będzie raczej skierowany dla początkujących, aby mogli zapoznać się z kodami źródłowymi i na podstawie tych kodów systematycznie pracowali nad poznawaniem możliwości programowania w C++.

Głównym źródłem przykładów do nauki pozostaje SDK dla danej wersji Symbiana, kody źródłowe dołączone do książek Symbian Press, Wiki z Forum Nokii, oraz nieliczne projekty na repozytoriach kodów źródłowych, takich jak SourceForge, Google Code.

Zaczniemy od przykładów na Forum Nokia. Tytułem wprowadzenia w programowanie UI polecam najpierw zapoznanie się z dokumentem Scalable UI Support v4.3. Nokia zazwyczaj przygotowała materiały szkoleniowe na ten temat: S60 Scalable UI Guidelines eLearning, S60 UI Architecture eLearning, S60 UI Controls eLearning, S60 List Controls eLearning


Bardzo polecałbym też zapoznanie się z dokumentem Avkon UI Resources v1.1 opisującym wszystkie kontrolki UI AVKONa. Settings Screen Example to przykład tego jak tworzyć UI które pozwala na zapisywanie ustawień. Więcej informacji o tym można przeczytać w dokumencie Implementing Settings Screens v2.0. Bardzie złożonym przykładem tego jak można dynamicznie zmieniać ustawienia aplikacji jest przykład Dynamic Setting List Example v1.1 Kolejny przykład Custom UI and Screen Rotation Example - pokazuje jak robić obrót ekranu i obsługiwać kontrolki reagujące na obrót ekranu. Następny kod z Scalable Screen-Drawing Example jest bardzo interesującym przykładem jak można tworzyć własny interfejs użytkownika pod katem zastosowań multimedialnych - jest nawet dokumentacja do tego przykładu (dla lepszego zrozumienia obsługi SVG-T zalecam poczytanie tego dokumentu Vector Graphics Optimization)
Istotny jest kod z przykładu Scalable UI Example, który jest prostą gierką (kółko i krzyżyk) wprowadzajacą w temat obsługi skalowalności kontrolek UI AVKONA. To trzeba brać czesto pod uwagę ze względu na to, że rozmiary ekranów w komórkach są różne. Ten temat porusza dokument Introduction To The S60 Scalable UI v1.4

Po zapoznaniu się z podstawami UI dla S60 AVKON można już przejść do analizy bardziej ciekawszych przykładów: konwertera obrazków Image Converter Example i jak prostego edytora Rich Text Editor Example

Jeżeli kogoś bardziej interesuje tworzenie gier to polecam zapoznanie się z przykładami kodów gier takich jak Sudoku, a także spróbować wykorzystać pisanie kodu w OpenC do napisania silnika gry Memory gdzie oczywiście interfejs użytkownika będzie w AVKONie. Dla programistów gier pod Symbianem jest dokument wprowadzający w architekturę programowania gier pod tą platformę Programming Games In C++ v2.0. Pod kątem programowania gier na Symbiana szczególnie polecam zapoznanie się przykładem, który może zostać użyty do tworzenia silników różnych gier czy aplikacji multimedialnych. Jest to: Isometric Adventure Game Example wraz z dokumentem Designing Isometric Adventure Games, 2D Game Engine Example

Dość złożonym tematem jest programowanie aplikacji wykorzystujących OpenGL ES, tutaj odsyłam do przykładów w SDK. Tytułem wprowadzenia proponuje zapoznanie się z dokumentem Introduction to 3D Graphics in C++ (with Example) v1.1 a potem przyjrzeć się kodowi 3D Game Engine Example with Sensor Support v1.2 ze względu na przykład z programowanie sensora

Dość specyficzne jest tworzenie aplikacji UI tylko dla obsługi interfejsu Touch (reagowania na dotyk) ze względu na możliwości Symbiana 9.4 (S60 5 edycji). Gdyby kogoś interesowało to co się zmieniło w S60 5 edycji dla programistów i jak napisać kod obsługujący obydwie platformy to należy przeczytać Porting applications to S60 5th Edition Tutaj polecam zapoznanie się z przykładami Solitaire Game Example i jak Mobile Paint Example. Dla dociekliwych polecam ściągniecie S60 5th Edition C++ Developer's Library v2.0 (Standalone) i przestudiowanie tego.

Komórki z tym systemem są często kupowane ze względu na możliwości multimedialne. W tym można powiedzieć że umiejętność zaprogramowania multimediów jest ważną cechą programisty w Symbianie. Nokia zrobiła świetny materiał szkoleniowy wproawadzajacy w tym temacie S60 Multimedia Framework eLearning. Na początek polecam zapoznanie się z dokumentami Multimedia Framework Architecture in S60 Devices v1.1 i Image and Video Capturing, które pokazują jaka jest skomplikowana fragmentaryzacja technologiczna, jeżeli chodzi o programowanie video i dźwięku. Często jest tak w tym temacie trzeba zaprogramować pod określone modele komórek. W tym przypadku proponuje zanalizować przykłady takie jak Video Example v2.0 i Camera Example i należy zwrócić uwagę na którą wersję Symbiana programuje się. Zalecam poczytać dokumentację Creating Video Applications In C++ a także Using the camera in applications

Programista multimediów w Symbianie powinien również wiedzieć jak programuje się obsługę dźwięku. Więcej o programowaniu muzyki warto poczytać w Music Application Developer's Guide Po zapoznaniu się z tym dokumentem można przejść do czytania kodów z następujących przykładów takich jak Audio Streaming Example, Audio Output Streaming Example przykład ten pokazuje jak zapisać dźwięk oraz Sound Mixer Example który jest przykładem miksera pokazującym jak równocześnie odtwarzać kilka dźwięków.

Programowanie na komórki nie ogranicza się tylko do multimediów. Współczesne komórki też mają możliwości zaprogramowanie baz danych do przechowywania danych, skorzystania z możliwości lokalizacyjnych (LBS i GPS), komunikacji za pośrednictwem Bluetootha, programowania wiadomości (SMS i MMS) a także skorzystania z możliwości obsługi komunikacji dźwiękowej (telefon, SIP czy VoIP).

Więc warto poznać kolejne przykłady z kodami źródłowymi. Przykład SMS Example pokazuje jak można zaprogramować obsługę SMSów. Przykład MMS Example pokazuje jak można programistyczne tworzyć MMSy. Przykład POP/IMAP Example ukazuje możliwości programistycznej obsługi poczty internetowej. Istnieje możliwość programowania aplikacji internetowych w Symbianie. Programista powinien zapoznać się z wstępnymi informacjami o komunikacji w dokumentacji w dziale Communication, bądź przeczytać wprowadzenie Overview To Networking. Są też przykłady End-to-End HTTP API Example v1.3 i jak End-to-End Sockets API Example v1.3 czy też HTTP Client Example

Do komunikacji pomiędzy urządzeniami i komórkami trzeba wykorzystać protokół Bluetooth. Na początek należy zapoznać się z wprowadzeniem do programowania Bluetootha w dokumencie Bluetooth API Developer's Guide Interesujący jest kod z przykładów Bluetooth Point-to-Multipoint Example, i jak Bluetooth OBEX Example

W komórkach mamy też funkcjonalności które są właściwie częścią API Symbiana. Jest API które odpowiada za korzystanie z książki adresowej. Przykład Contacts Model API Example pokazuje jak eksportować dane do formatu vCard. API za korzystanie z kalendarza jest ukazany w Calendar Interim API Example. Natomiast obsługę API do zarządzania plikami można poznać z kodu FileList Example, a API z obsługi baz danych można przestudiować z kodu przykładu DBMS Example.

Spora część API została udostępniona jako S60 Platform Services dla WRT (Web Runtime), Flash Lite 3, czy Pythona oraz Qt for S60, co umożliwia innym programistom korzystać z możliwości API, którze wcześniej było dostepne tylko dla programistów C++.

Brak komentarzy: