www.lab4mac.com
okladka

Każdy, kto choć trochę interesuje się najnowszymi rozwiązaniami stosowanymi w telefonach komórkowych, z pewnością nieraz spotkał się z systemem operacyjnym Symbian oraz z S60 - najszybciej rozwijającą się platformą działającą na bazie tego środowiska. Dzieło firmy Nokia zdecydowanie opanowuje rynek urządzeń mobilnych, znajdując zastosowanie nie tylko w oferowanych przez nią smartfonach, lecz również produktach noszących znaki przedsiębiorstw takich jak Samsung, Panasonic, Lenovo czy LG Electronics. I nie ma w tym nic dziwnego, bowiem S60 uchodzi za jeden z prostszych, wydajniejszych i bardziej niezawodnych interfejsów użytkownika spośród rozwiązań wykorzystywanych w zaawansowanych komórkach.

Wraz ze wzrostem popularności i możliwości smartfonów rosną też oczekiwania wobec oprogramowania, które można na nich instalować. Temu z kolei towarzyszy coraz większa potrzeba wiedzy niezbędnej do tworzenia ciekawych aplikacji "komórkowych". Umiejętności tego typu uważane są przez wielu programistów niemal za magię, a samo programowanie w systemie Symbian ma opinię niezwykle skomplikowanego.

O tym, że wcale tak być nie musi, przekonasz się dzięki lekturze książki "Symbian S60. Programowanie urządzeń mobilnych". Podręcznik ten bezboleśnie wprowadzi Cię w świat Symbiana, dostarczając praktycznych informacji na temat budowy sprzętu oraz zasad działania systemu operacyjnego i interfejsu użytkownika. Pozwoli też poznać szerokie spektrum zagadnień związanych z programowaniem urządzeń mobilnych, począwszy od wiadomości zupełnie podstawowych, a skończywszy na tematyce zaawansowanej, w tym opisie najważniejszych klas, mechanizmu obsługi wyjątków oraz sposobu kontrolowania wątków i procesów.

  • Budowa urządzeń mobilnych i systemu operacyjnego Symbian
  • Instalacja i używanie narzędzi niezbędnych programiście
  • Architektura GUI i bezpieczeństwo oprogramowania
  • Korzystanie z emulatora systemu
  • Tworzenie i używanie klas, tablic i obiektów aktywnych
  • Korzystanie z wyjątków i deskryptorów
  • Zarządzanie procesami i wątkami
  • Stosowanie architektury klient-serwer
  • Przegląd właściwości i repozytoriów
  • Korzystanie z bibliotek DLL i makr

Dołącz do grupy najbardziej poszukiwanych programistów urządzeń mobilnych.


Wstęp (11)
Rozdział 1. System operacyjny Symbian (13)
  • Budowa urządzenia mobilnego (14)
    • Procesor (15)
    • Pamięć (17)
    • Układ DMA (18)
    • Układy audio (18)
    • Wyświetlacze LCD (19)
  • Systemy plików (19)
  • Pliki wykonywalne (21)
Rozdział 2. Warsztat programisty (23)
  • Wybór pakietu SDK (23)
  • Przygotowanie warsztatu (24)
    • Wymagania sprzętowe (25)
    • Wymagane oprogramowanie (25)
    • Pakiet SDK (26)
    • Struktura katalogów (28)
    • Środowisko programistyczne Carbide.c++ (30)
Rozdział 3. Architektura aplikacji GUI (41)
  • Wygląd interfejsu użytkownika aplikacji GUI (43)
  • Klasy tworzące aplikację GUI (44)
    • Klasa aplikacji (46)
    • Klasa dokumentu (47)
    • Klasa AppUi (49)
    • Klasa widoku (54)
  • Sekwencja startu aplikacji GUI (57)
  • Otoczenie interfejsu użytkownika (58)
  • Zasoby aplikacji (59)
    • Plik lokalizacyjny (60)
    • Główny plik zasobów (61)
    • Plik rejestracyjny (67)
  • Plik konfiguracyjny projektu (73)
  • Plik definicji komponentów projektu (79)
  • Pakiet instalacyjny (80)
  • Drzewo katalogów (83)
  • Proces budowania (85)
    • Platformy (85)
    • Postkonsolidator (86)
    • Budowanie aplikacji (86)
  • Podpisywanie pakietu instalacyjnego (87)
Rozdział 4. Platforma Bezpieczeństwa (89)
  • Jednostka zaufania (90)
  • Warstwy zaufania (91)
    • TCB (Trusted Computing Base) (91)
    • TCE (Trusted Computing Environment) (92)
    • Zaufane oprogramowanie od dostawców zewnętrznych (92)
    • Oprogramowanie niezaufane (93)
  • Uprawnienia (94)
  • Ochrona plików (97)
    • Katalog sys (97)
    • Katalog esource (98)
    • Katalog private (98)
  • Reguły ładowania bibliotek (99)
  • Identyfikatory plików wykonywalnych (101)
    • Identyfikator UID1 (102)
    • Identyfikator UID2 (102)
    • Identyfikator UID3 (102)
    • Identyfikator SID (102)
    • Identyfikator VID (104)
  • Podpisywanie aplikacji w Symbian Signed (104)
    • Open Signed Online (106)
    • Open Signed Offline (106)
    • Express Signed (109)
    • Certified Signed (112)
    • Uzyskiwanie zgody na posiadanie uprawnień producenta urządzeń (113)
Rozdział 5. Emulator systemu Symbian (117)
  • System plików emulatora (119)
  • Okno emulatora (119)
  • Okno preferencji (121)
    • Zakładka "C++ Debug" (123)
    • Zakładka "General Settings" (124)
    • Zakładka "PAN" (125)
    • Zakładka "Network" (125)
    • Zakładka "MIDP Security" (125)
    • Zakładka "Platform Security" (126)
  • Generowanie zdarzeń (126)
    • Karty pamięci (127)
    • Zdarzenia podstawowe (127)
    • Zdarzenia dodatkowe (128)
    • Alarm (128)
    • Wysyłanie wiadomości (129)
  • Diagnostyka (129)
    • Monitorowanie transakcji HTTP (130)
    • Podgląd komunikatów diagnostycznych (130)
  • Menedżer zadań (132)
    • Diagnozowanie urządzenia mobilnego (133)
  • Plik konfiguracyjny emulatora (134)
    • Rozmiar oraz pozycja wyświetlacza (135)
    • Mapowanie klawiszy (136)
    • Opcje debug (137)
    • Pamięć RAM (137)
    • Platforma Bezpieczeństwa (138)
    • Karty pamięci (138)
Rozdział 6. Konwencja nazewnictwa klas (141)
  • Typy podstawowe (141)
    • Typy całkowite (142)
    • Typy rzeczywiste (142)
    • Typ logiczny (143)
    • Typ pusty (144)
  • Klasy T (145)
  • Klasy C (146)
  • Klasy R (148)
  • Klasy M (150)
  • Klasy statyczne (151)
  • Wyjątki w nazewnictwie klas (152)
  • Nazewnictwo składowych klasy (152)
Rozdział 7. Obsługa wyjątków (155)
  • Wyjścia (155)
  • Klasa CleanupStack (157)
  • Przechwytywanie wyjść (162)
  • Dwufazowy konstruktor (164)
  • Zagadnienia zaawansowane (168)
    • Wyjścia jako wyjątki (168)
    • Klasa CleanupStack pod lupą (171)
  • Paniki (174)
    • Kategorie panik (174)
    • Definiowanie panik (175)
    • Wątki i procesy krytyczne (177)
  • Plik ErrRd - pomoc programisty (177)
Rozdział 8. Deskryptory (181)
  • Klasy deskryptorów (181)
  • Deskryptory niemodyfikowalne (182)
  • Deskryptory modyfikowalne (183)
  • Deskryptory wskaźnikowe (185)
    • Klasa TPtrC (186)
    • Klasa TPtr (189)
  • Deskryptory buforowe (191)
    • Klasa TBufC (192)
    • Klasa TBuf (194)
    • Klasa HBufC (196)
    • Klasa RBuf (203)
  • Literały (205)
  • Prawidłowe używanie deskryptorów (207)
    • Deskryptory jako parametry funkcji (207)
    • Deskryptory jako typy zwracane (209)
    • Deskryptoryzacja (212)
    • Konwersja danych (217)
    • Najczęstsze nadużycia (219)
Rozdział 9. Tablice dynamiczne (223)
  • Rodzina klas CArray (223)
  • Klasy RArray i RPointerArray (229)
  • Tablice o stałym rozmiarze (235)
Rozdział 10. Aktywne obiekty (237)
  • Klasa CActive (239)
  • Klasa CActiveScheduler (244)
  • Aktywne obiekty w praktyce (250)
    • Asynchroniczne odmierzanie czasu (250)
    • Asynchroniczny zapis danych do pliku (254)
  • Synchroniczne wykonywanie operacji asynchronicznych (258)
    • Wykorzystanie klasy User (259)
    • Zagnieżdżanie pętli Zarządcy Aktywności (260)
  • Najczęściej popełniane błędy (269)
Rozdział 11. Wątki i procesy (271)
  • Klasa RThread (272)
  • Klasa RProcess (285)
  • Priorytety (291)
    • Priorytety procesów (291)
    • Priorytety wątków (292)
  • Synchronizacja (294)
    • Semafory (295)
    • Muteksy (300)
    • Sekcje krytyczne (304)
    • Spotkanie w ustalonych punktach wykonania (306)
  • Klasa RUndertaker (311)
Rozdział 12. Architektura klient - serwer (317)
  • Sesje i podsesje (319)
    • Klasy RSessionBase (320)
    • Klasa RSubSessionBase (325)
    • Klasa CSession2 (326)
  • Komunikaty (328)
  • Serwery (337)
    • Typy serwerów (337)
    • Klasa CServer2 (338)
    • Polityka bezpieczeństwa (341)
  • Klient - serwer w praktyce (348)
    • Plik definicji komponentów projektu (349)
    • Współdzielone definicje stałych (350)
    • API klienta (351)
    • Serwer (355)
Rozdział 13. Właściwości i repozytoria (371)
  • Właściwości (371)
    • Klasa RProperty (372)
    • Kwestie bezpieczeństwa (383)
    • Właściwości systemowe (383)
  • Repozytoria (386)
    • Klasa CRepository (387)
    • Repozytoria systemowe (396)
Rozdział 14. Więcej o aplikacjach (399)
  • Wielowidokowa aplikacja GUI (400)
    • Pliki konfiguracyjne (403)
    • Pliki zasobów (406)
    • Klasa aplikacji (410)
    • Klasa dokumentu (411)
    • Klasa AppUi (412)
    • Klasy widoków (415)
    • Skrypt instalacyjny (423)
  • Aplikacja bez interfejsu użytkownika (424)
    • Pliki konfiguracyjne (424)
    • Główny plik źródłowy (425)
    • Skrypt instalacyjny (431)
  • Globalne okna dialogowe (431)
    • Klasa CAknGlobalConfirmationQuery (436)
    • Klasa CAknGlobalListQuery (439)
    • Klasa CAknGlobalMsgQuery (442)
    • Klasa CAknGlobalNote (445)
    • Klasa CAknGlobalProgressDialog (448)
  • Uruchamianie aplikacji podczas startu systemu (452)
Rozdział 15. Biblioteki DLL (455)
  • Informacje ogólne (455)
  • Biblioteki w praktyce (458)
    • Przykład biblioteki ładowanej statycznie (458)
    • Przykład biblioteki ładowanej dynamicznie (467)
    • Budowanie bibliotek (475)
Rozdział 16. Użyteczne makra (477)
  • Makra kompilatora platformy WINSCW (477)
  • Makro _DEBUG (478)
  • Makro EKA2 (478)
  • Makra wspomagające logowanie (479)
  • Zapobieganie wyciekom pamięci (481)
  • Asercje (483)
Bibliografia (485)
Skorowidz (487)