Zapraszamy do zapoznania się z językiem programowania Objective-C umożliwiającym tworzenie aplikacji na systemy iOS i Mac OS X.
Autor: Stephen G. Kochan Darmowy fragment książki w pdf |
Praktyczny podręcznik tworzenia aplikacji na systemy iOS i Mac OS X!
- Techniki definiowania klas i sposoby wysyłania komunikatów do obiektów
- Praca z typami danych, pętlami, klasami i obiektami
- Korzystanie z bibliotek Foundation oraz Cocoa i Cocoa Touch
Tak jak iPhone, iPad czy iPod Touch błyskawicznie stały się obiektem pożądania milionów ludzi na całym świecie, tak samo szybko rynek upomniał się o specjalistów od tworzenia aplikacji na te innowacyjne urządzenia. Mimo że od 2007 roku, gdy Apple opublikowało zaktualizowaną wersję języka Objective-C, oznaczoną jako 2.0, minęło już trochę czasu, programistów znających ten język wciąż jest niewielu, a zapotrzebowanie na programy dla systemów iOS i Mac OS X stale rośnie. Warto zatem opanować ten potężny język, zarazem prosty i oferujący ogromne perspektywy zawodowe. Zwłaszcza że można go wykorzystać także na wielu innych platformach z kompilatorem gcc, a więc między innymi w systemach Unix, Linux i Windows.
Oto książka stworzona z myślą o programistach stawiających pierwsze kroki w języku Objective-C. Do wykorzystania zawartej tu wiedzy nie jest potrzebna znajomość języka C ani żadnego innego obiektowego języka programowania. Podstawą do nauki są dziesiątki ciekawych przykładów i ćwiczeń, ilustrujących użycie poszczególnych cech i ułatwiających zrozumienie poznawanych zagadnień. Książkę podzielono na trzy części. Pierwsza zawiera podstawowe wiadomości na temat języka Objective-C 2.0, a w drugiej znajdziesz opis klas dostępnych w bibliotece Foundation. Część trzecia poświęcona została niezwykle ważnym bibliotekom Cocoa i Cocoa Touch. Na końcu książki zamieszczono kurs pisania programów dla systemu iOS przy użyciu Software Development Kit iOS oraz biblioteki UIKit. Poznaj Objective-C i czerp z tego korzyści!
- Proces tworzenia pierwszego programu w języku Objective-C
- Klasy, obiekty i metody, czyli podstawy programowania obiektowego
- Typy danych i wyrażenia oraz sposoby ich używania w programach
- Rodzaje pętli, których można używać w programach: for, while i do
- Szczegółowy opis technik pracy z klasami i obiektami
- Wprowadzenie do pojęcia dziedziczenia
- Polimorfizm oraz typowanie i wiązanie dynamiczne
- Techniki inicjacji obiektów, bloki, protokoły, kategorie, preprocesor oraz niektóre elementy języka C
- Obiekty liczbowe i łańcuchowe, kolekcje, systemy plików
- Techniki zarządzania pamięcią oraz proces kopiowania i archiwizowania obiektów
- Wprowadzenie do Cocoa i Cocoa Touch
- Pisanie programów dla systemu iOS i wprowadzenie do SDK iOS oraz biblioteki UIKit
Zacznij pisać własne, funkcjonalne programy na iPhone’a, iPada oraz iPoda Touch!
Spis treści:
O korektorach merytorycznych (12)
Rozdział 1. Wprowadzenie (13)
- Zawartość książki (14)
- Struktura książki (15)
- Pomoc (17)
- Podziękowania (17)
Rozdział 2. Programowanie w języku Objective-C (21)
- Kompilacja i uruchamianie programów (21)
- Kompilacja programów przy użyciu Xcode (22)
- Kompilacja programów przy użyciu terminala (28)
- Objaśnienie kodu pierwszego programu (30)
- Wyświetlanie wartości zmiennych (34)
- Podsumowanie (36)
- Czym tak właściwie jest obiekt (39)
- Egzemplarze i metody (40)
- Klasa w języku Objective-C do działań na ułamkach (42)
- Sekcja @interface (45)
- Wybór nazw (45)
- Zmienne egzemplarza (47)
- Metody klas i egzemplarzy (47)
- Sekcja @implementation (49)
- Sekcja programu (50)
- Zasady dostępu do zmiennych egzemplarzy i hermetyzacja danych (56)
- Podsumowanie (59)
- Typy danych i stałe (61)
- Typ int (61)
- Typ float (62)
- Typ char (62)
- Kwalifikatory: long, long long, short, unsigned oraz signed (63)
- Typ id (64)
- Wyrażenia arytmetyczne (65)
- Kolejność wykonywania działań (65)
- Arytmetyka liczb całkowitych i jednoargumentowy operator minus (68)
- Operator dzielenia modulo (70)
- Konwersja między typami całkowitymi i zmiennoprzecinkowymi (71)
- Operator rzutowania typów (72)
- Operatory przypisania (73)
- Klasa kalkulatora (74)
- Pętla for (80)
- Odbieranie danych z klawiatury (86)
- Zagnieżdżanie pętli for (88)
- Warianty pętli for (90)
- Instrukcja while (91)
- Instrukcja do (95)
- Instrukcja break (96)
- Instrukcja continue (97)
- Podsumowanie (97)
- Instrukcja if (99)
- Instrukcja if-else (103)
- Złożone testy relacyjne (106)
- Zagnieżdżanie instrukcji if (108)
- Konstrukcja else if (110)
- Instrukcja switch (118)
- Zmienne logiczne (121)
- Operator warunkowy (126)
- Pisanie interfejsu i implementacji w osobnych plikach (129)
- Automatyczne tworzenie metod dostępowych (134)
- Dostęp do właściwości za pomocą operatora kropki (135)
- Metody przyjmujące po kilka argumentów (136)
- Metody bez nazw argumentów (138)
- Działania na ułamkach (138)
- Zmienne lokalne (141)
- Argumenty metod (142)
- Słowo kluczowe static (142)
- Słowo kluczowe self (145)
- Alokacja i zwracanie obiektów przez metody (146)
- Rozszerzanie definicji klasy i pliku interfejsowego (151)
- Początek wszystkiego (153)
- Wybieranie metody do wywołania (157)
- Rozszerzanie klas poprzez dziedziczenie - dodawanie nowych metod (157)
- Klasa reprezentująca punkt i alokacja pamięci (161)
- Dyrektywa @class (162)
- Klasy jako właściciele swoich obiektów (166)
- Przesłanianie metod (169)
- Wybór metody (171)
- Przesłanianie metody dealloc i słowa kluczowego super (173)
- Rozszerzanie poprzez dziedziczenie - dodawanie zmiennych egzemplarzowych (175)
- Klasy abstrakcyjne (177)
- Polimorfizm - ta sama nazwa, różne klasy (181)
- Wiązanie dynamiczne i typ id (184)
- Sprawdzanie typów (186)
- Typ id i typowanie statyczne (187)
- Argumenty i typy zwrotne a typowanie dynamiczne (188)
- Pytanie o klasy (189)
- Obsługa wyjątków za pomocą instrukcji @try (193)
- Inicjowanie obiektów (197)
- Zakres dostępności zmiennych - rozszerzenie wiadomości (200)
- Dyrektywy do kontroli zakresu dostępności zmiennych (200)
- Zmienne zewnętrzne (201)
- Zmienne statyczne (203)
- Wyliczenia (206)
- Instrukcja typedef (209)
- Konwersja typów (210)
- Reguły konwersji (210)
- Operatory bitowe (211)
- Operator bitowego I (213)
- Operator bitowego LUB (214)
- Bitowy operator LUB wykluczającego (214)
- Operator uzupełnienia jedynkowego (215)
- Operator przesunięcia w lewo (216)
- Operator przesunięcia w prawo (217)
- Kategorie (219)
- Kilka uwag na temat kategorii (223)
- Protokoły i delegacja (224)
- Delegacja (227)
- Protokoły nieformalne (228)
- Obiekty złożone (229)
- Instrukcja #define (233)
- Inne zaawansowane definicje typów (235)
- Instrukcja #import (239)
- Kompilacja warunkowa (241)
- Instrukcje #ifdef, #endif, #else oraz #ifndef (241)
- Instrukcje #if i #elif (243)
- Instrukcja #undef (244)
- Tablice (245)
- Inicjowanie elementów tablic (248)
- Tablice znaków (249)
- Tablice wielowymiarowe (250)
- Funkcje (251)
- Argumenty i zmienne lokalne (253)
- Wartość zwrotna funkcji (255)
- Funkcje, metody i tablice (258)
- Bloki (259)
- Struktury (263)
- Inicjowanie struktur (266)
- Struktury wewnątrz struktur (267)
- Struktury - uzupełnienie wiadomości (268)
- Nie zapomnij o programowaniu obiektowym! (271)
- Wskaźniki (271)
- Wskaźniki i struktury (275)
- Wskaźniki, metody i funkcje (277)
- Wskaźniki i tablice (278)
- Działania na wskaźnikach (288)
- Wskaźniki i adresy w pamięci (290)
- Unie (290)
- To nie są obiekty! (292)
- Różności (293)
- Literały złożone (293)
- Instrukcja goto (293)
- Instrukcja pusta (294)
- Operator przecinek (294)
- Operator sizeof (295)
- Argumenty wiersza poleceń (296)
- Jak to działa (298)
- Fakt 1. Zmienne egzemplarzowe są przechowywane w strukturach (298)
- Fakt 2. Zmienna obiektowa jest tak naprawdę wskaźnikiem (299)
- Fakt 3. Metody i funkcje oraz wyrażenia wysyłające komunikaty i wywołania funkcji (299)
- Fakt 4. Typ id to ogólny typ wskaźnikowy (299)
Rozdział 14. Wprowadzenie do biblioteki Foundation (305)
- Dokumentacja biblioteki Foundation (305)
- Obiekty liczbowe (309)
- Krótka dygresja na temat puli automatycznej (311)
- Obiekty łańcuchowe (314)
- Funkcja NSLog - rozszerzenie wiadomości (315)
- Metoda description (315)
- Obiekty zmienne i niezmienne (316)
- Łańcuchy zmienne (322)
- Gdzie podziewają się te wszystkie obiekty? (326)
- Obiekty tablicowe (328)
- Budowa książki adresowej (331)
- Sortowanie tablic (348)
- Słowniki (355)
- Enumeracja słownika (356)
- Zbiory (358)
- Klasa NSIndexSet (362)
- Praca z plikami i katalogami - klasa NSFileManager (368)
- Klasa NSData (372)
- Praca z katalogami (374)
- Sprawdzanie zawartości katalogów (376)
- Praca ze ścieżkami - plik NSPathUtilities.h (378)
- Najczęściej używane metody do pracy ze ścieżkami do plików (380)
- Kopiowanie plików i używanie klasy NSProcessInfo (382)
- Podstawowe operacje na plikach - klasa NSFileHandle (386)
- Klasa NSURL (390)
- Klasa NSBundle (391)
- Pula automatyczna (395)
- Liczenie referencji (396)
- Liczenie referencji a łańcuchy (399)
- Zmienne egzemplarzowe (401)
- Przykład automatycznego zwalniania (407)
- Podsumowanie zasad zarządzania pamięcią (409)
- Pętla zdarzeń a alokacja pamięci (409)
- Znajdowanie wycieków pamięci (411)
- Usuwanie nieużytków (411)
- Metody copy i mutableCopy (416)
- Kopiowanie płytkie i głębokie (418)
- Implementacja protokołu <NSCopying> (420)
- Kopiowanie obiektów w metodach ustawiających i sprawdzających (423)
- Listy właściwości w formacie XML (427)
- Archiwizacja przy użyciu klasy NSKeyedArchiver (429)
- Pisanie metod kodujących i dekodujących (431)
- Tworzenie archiwów przy użyciu klasy NSData (438)
- Kopiowanie obiektów przy użyciu archiwizatora (441)
Rozdział 20. Wprowadzenie do Cocoa i Cocoa Touch (445)
- Warstwy bibliotek (445)
- Cocoa Touch (446)
- Pakiet SDK dla systemu iOS (449)
- Pierwszy program dla systemu iOS (449)
- Tworzenie nowego projektu programu dla iPhone'a (451)
- Wpisywanie kodu (454)
- Projektowanie interfejsu (457)
- Kalkulator ułamków (463)
- Tworzenie projektu Fraction_Calculator (464)
- Definicja kontrolera widoku (467)
- Klasa Fraction (471)
- Klasa Calculator z obsługą ułamków (474)
- Projekt interfejsu użytkownika (476)
- Podsumowanie (476)
Dodatek A: Słowniczek (481)
Skorowidz (489)