Details zum E-Book

iOS. Tajniki SDK. Biblioteka przydatnych narzędzi

iOS. Tajniki SDK. Biblioteka przydatnych narzędzi

Kyle Richter, Joe Keeley

E-book

Poznaj zaawansowane możliwości platformy iOS! Programowanie aplikacji przy użyciu iOS SDK

Systemy spod znaku jabłka od zawsze wyznaczały trendy w wyglądzie interfejsu użytkownika. Nie inaczej jest w przypadku urządzeń mobilnych. Platforma iOS zdobyła uznanie użytkowników dzięki niezwykłej wygodzie użytkowania, atrakcyjnemu wyglądowi oraz ogromnym możliwościom. Jeżeli chcesz stworzyć aplikację, w której wykorzystasz zaawansowane narzędzia i mechanizmy SDK, to trafiłeś na doskonałą publikację!

W trakcie lektury będziesz mieć niepowtarzalną okazję poznania systemu iOS od podszewki — wraz z jego licznymi bibliotekami, ułatwiającymi pracę programistom. Jaką wiedzę zdobędziesz dzięki tej książce? Nauczysz się tworzyć animacje z wykorzystaniem UIKit Dynamics oraz stosować biblioteki Core Location, MapKit i Geofencing. Ponadto dowiesz się, do czego służą Game Center oraz iCloud. W kolejnych rozdziałach znajdziesz informacje poświęcone komunikacji między systemami za pośrednictwem formatu JSON, lokalnym repozytoriom danych oraz zaawansowanym operacjom na tekście przy użyciu biblioteki TextKit. Dodatkowo poznasz tajniki SDK i sprytne techniki pracy z IDE. To obowiązkowa lektura każdego programisty platformy iOS!

Dzięki tej książce:

  • poznasz najbardziej przydatne biblioteki platformy iOS
  • wykorzystasz potencjał środowiska Xcode
  • zintegrujesz swoją aplikację z iCloud i Game Center
  • zaznajomisz się z zaawansowanymi funkcjami języka Objective-C
  • stworzysz lepszą aplikację w krótszym czasie

iOS dla ambitnych!

Słowo wstępne (17)

Przedmowa (19)

O autorach (27)

Rozdział 1. UIKit Dynamics (29)

  • Przykładowa aplikacja (29)
  • Wprowadzenie do UIKit Dynamics (30)
  • Implementacja mechanizmów UIKit Dynamics (31)
    • Grawitacja (32)
    • Kolizje (33)
    • Powiązania (35)
    • Sprężynowanie (36)
    • Przyciąganie (37)
    • Siły odpychania (37)
    • Właściwości elementu (39)
  • UIDynamicAnimator i UIDynamicAnimatorDelegate pod lupą (41)
  • Podsumowanie (41)
  • Ćwiczenia (42)

Rozdział 2. Core Location, MapKit i wirtualne granice (43)

  • Przykładowa aplikacja (43)
  • Uzyskiwanie położenia użytkownika (44)
    • Wymagania i uprawnienia (44)
    • Sprawdzanie dostępności usług (48)
    • Rozpoczęcie pobierania informacji o położeniu (48)
    • Parsowanie i interpretacja danych położenia (50)
    • Powiadomienia o istotnych zmianach (52)
    • Stosowanie plików GPX do testowania lokalizacji (52)
  • Wyświetlanie map (53)
    • Układy współrzędnych (53)
    • Konfiguracja MKMapKit (54)
    • Reagowanie na zachowania użytkownika (56)
  • Adnotacje i warstwy (56)
    • Dodawanie adnotacji (57)
    • Wyświetlanie standardowych i specyficznych widoków adnotacji (59)
    • Przeciągalne widoki adnotacji (62)
    • Praca z warstwami mapy (63)
  • Geokodowanie i odwrotne geokodowanie (65)
    • Geokodowanie adresu (65)
    • Odwrotne geokodowanie położenia (68)
  • Wirtualne granice (71)
    • Weryfikacja możliwości w zakresie monitorowania obszaru (71)
    • Określanie granic (72)
    • Monitorowanie zmian (72)
  • Wyznaczanie tras (74)
  • Podsumowanie (79)
  • Ćwiczenia (79)

Rozdział 3. Tablice wyników (81)

  • Uderz kaktus (81)
    • Wyświetlanie kaktusa (83)
    • Interakcja z kaktusami (85)
    • Wyświetlanie liczby żyć i wyniku (87)
    • Wstrzymywanie i wznawianie (89)
    • Uwagi końcowe (90)
  • iTunes Connect (90)
  • Menedżer Game Center (94)
  • Uwierzytelnianie (95)
    • Typowe błędy związane z uwierzytelnianiem (96)
    • Uwierzytelnianie w iOS 6 (97)
  • Wysyłanie wyników (99)
    • Dodawanie wyników do gry Whack-a-Cac (102)
    • Wyświetlanie list wyników (104)
    • Wyzwania (106)
    • Co dalej z tablicami wyników? (108)
  • Podsumowanie (109)
  • Ćwiczenia (109)

Rozdział 4. Osiągnięcia (111)

  • iTunes Connect (111)
  • Wyświetlanie informacji o osiągnięciach (114)
  • Menedżer Game Center i uwierzytelnianie (115)
  • Pamięć podręczna osiągnięć (115)
  • Zgłaszanie osiągnięć (117)
  • Dodawanie haków osiągnięć (119)
  • Banery z powiadomieniami (120)
  • Wyzwania (120)
  • Dodawanie osiągnięć do gry (123)
    • Ukończone i nieukończone osiągnięcia (124)
    • Osiągnięcia częściowe (125)
    • Osiągnięcia zdobywane na przestrzeni wielu sesji (127)
    • Grupowanie osiągnięć i przechowywanie ich dokładności (127)
    • Osiągnięcia z wykorzystaniem zegarów (128)
  • Resetowanie osiągnięć (129)
  • Co jeszcze można osiągnąć? (130)
  • Podsumowanie (132)
  • Ćwiczenia (132)

Rozdział 5. Książka adresowa (133)

  • Czemu obsługa książki adresowej jest istotna? (133)
  • Ograniczenia związane ze stosowaniem książki adresowej (134)
  • Wprowadzenie do przykładowej aplikacji (134)
  • Dodanie obsługi książki adresowej (135)
    • Wczytywanie danych z książki adresowej (137)
    • Odczytywanie wielowartości z książki adresowej (139)
    • Etykiety w książce adresowej (139)
    • Obsługa adresów (140)
  • Interfejs graficzny książki adresowej (141)
    • Kontrolka wyboru kontaktów (142)
  • Tworzenie kontaktów z poziomu kodu (147)
  • Podsumowanie (148)
  • Ćwiczenia (149)

Rozdział 6. Obsługa bibliotek muzyki (151)

  • Wprowadzenie do przykładowej aplikacji (151)
  • Tworzenie silnika odtwarzania (152)
    • Rejestrowanie powiadomień odtwarzania (153)
    • Kontrolki użytkownika (154)
    • Obsługa zmiany stanu (156)
    • Czas trwania a zegary (160)
    • Tryb losowy i powtarzanie (161)
  • Media Picker - kontrolka wyboru multimediów (162)
  • Ręczny wybór piosenek (164)
    • Odtwarzanie losowo wybranej piosenki (164)
    • Wyszukiwanie piosenek w oparciu o predykaty (166)
  • Podsumowanie (167)
  • Ćwiczenia (168)

Rozdział 7. Obsługa i parsowanie formatu JSON (169)

  • JSON (169)
    • Korzyści wynikające ze stosowania formatu JSON (170)
    • Zasoby JSON (170)
  • Omówienie przykładowej aplikacji (170)
  • Uzyskanie dostępu do serwera (171)
  • Pobieranie danych w formacie JSON z serwera (171)
    • Tworzenie obiektu żądania (171)
    • Przetwarzanie odpowiedzi (172)
    • Parsowanie danych w formacie JSON (173)
    • Wyświetlanie danych (174)
  • Wysyłanie ogłoszenia (175)
    • Przekształcanie danych na format JSON (176)
    • Wysyłanie dokumentu JSON do serwera (178)
  • Podsumowanie (179)
  • Ćwiczenie (179)

Rozdział 8. iCloud w praktyce (181)

  • Przykładowa aplikacja (182)
  • Konfiguracja aplikacji dla usługi iCloud (182)
    • Konfiguracja konta (182)
    • Włączenie obsługi iCloud (184)
    • Inicjalizacja usługi iCloud (184)
  • Wprowadzamy klasę UIDocument (185)
    • Tworzenie podklas klasy UIDocument (186)
    • Interakcja z obiektem klasy UIDocument (187)
  • Interakcja z usługą iCloud (188)
    • Wyświetlanie dokumentów w usłudze iCloud (188)
    • Wykrywanie konfliktów w usłudze iCloud (191)
  • Rozwiązywanie konfliktów (193)
  • Synchronizacja słowników (197)
  • Podsumowanie (199)
  • Ćwiczenia (199)

Rozdział 9. Powiadomienia (201)

  • Różnice pomiędzy powiadomieniami lokalnymi i zdalnymi (201)
  • Przykładowa aplikacja (202)
  • Konfiguracja aplikacji (203)
  • Tworzenie programistycznego certyfikatu SSL dla zdalnych powiadomień (206)
  • Programistyczny profil poświadczeń (209)
  • Przygotowanie własnego dźwięku (213)
  • Rejestrowanie aplikacji w celu otrzymywania zdalnych powiadomień (214)
  • Planowanie powiadomień lokalnych (215)
  • Otrzymywanie powiadomień (216)
  • Serwer powiadomień zdalnych (217)
  • Podstawowa konfiguracja Rails (218)
  • Dodawanie obsługi urządzeń i wykrzyknień (219)
  • Kontroler urządzeń (222)
  • Kontroler wykrzyknień (222)
  • Połączenie aplikacji mobilnej i serwera (223)
  • Wysyłanie zdalnych powiadomień (226)
  • Obsługa informacji zwrotnej od APNs (227)
  • Podsumowanie (227)
  • Ćwiczenie (227)

Rozdział 10. Bluetooth a Game Kit (229)

  • Ograniczenia komunikacji sieciowej Bluetooth w Game Kit (229)
  • Korzyści ze stosowania Bluetooth w Game Kit (230)
  • Przykładowa aplikacja (230)
  • Wybór partnera - kontrolka Peer Picker (234)
  • Wysyłanie danych (238)
    • Tryby transferu danych (238)
    • Wysyłanie danych w przykładowej aplikacji (239)
  • Otrzymywanie danych (240)
    • Otrzymywanie danych w przykładowej aplikacji (240)
  • Zmiany stanu (241)
  • Zaawansowane funkcje (242)
    • Wyświetlanie nazwy partnera (242)
    • Nawiązywanie połączenia bez kontrolki Peer Picker (242)
    • Tryby sesji (244)
  • Podsumowanie (244)
  • Ćwiczenia (244)

Rozdział 11. AirPrint (245)

  • Drukarki AirPrint (245)
  • Testowanie technologii AirPrint (247)
  • Drukowanie tekstu (247)
    • Informacje na temat drukowania (248)
    • Ustawienie zakresu stron (249)
    • Obsługa błędów (250)
    • Rozpoczynamy drukowanie (250)
    • Informacja zwrotna od symulatora drukowania (251)
  • Centrum drukowania (Print Center) (251)
    • UIPrintInteractionControllerDelegate (253)
  • Drukowanie wyrenderowanego dokumentu HTML (254)
  • Drukowanie plików PDF (255)
  • Podsumowanie (256)
  • Ćwiczenia (256)

Rozdział 12. Wprowadzenie do Core Data (257)

  • Kiedy stosować Core Data? (258)
  • Obiekty zarządzane Core Data (259)
    • Obiekty zarządzane (259)
    • Model zarządzanego obiektu (260)
    • Migracje modeli zarządzanych obiektów (262)
    • Tworzenie obiektów zarządzanych (263)
    • Pobieranie i sortowanie obiektów (263)
    • Kontroler pobranych wyników (265)
  • Środowisko Core Data (265)
    • Koordynator trwałego magazynu (265)
    • Trwały magazyn (266)
    • Kontekst obiektów zarządzanych (266)
  • Podsumowanie (266)

Rozdział 13. Core Data w praktyce (269)

  • Przykładowa aplikacja (269)
  • Tworzenie projektu wykorzystującego Core Data (270)
    • Środowisko Core Data (272)
  • Tworzenie modelu obiektu zarządzanego (274)
    • Tworzenie encji (275)
    • Dodawanie atrybutów (275)
    • Definiowanie związków (276)
    • Własne podklasy obiektów zarządzanych (277)
  • Konfiguracja domyślnych danych (278)
    • Wstawianie nowych obiektów zarządzanych (278)
    • Inne sposoby konfiguracji domyślnych danych (279)
  • Wyświetlanie obiektów zarządzanych (280)
    • Tworzenie własnych żądań pobrania (280)
    • Pobieranie za pomocą identyfikatora obiektu (282)
    • Wyświetlanie danych obiektu (283)
    • Stosowanie predykatów (284)
  • Kontroler pobranych wyników (285)
    • Przygotowanie kontrolera pobranych wyników (287)
    • Integracja widoku tabeli z kontrolerem pobranych wyników (288)
    • Reagowanie na zmiany w bibliotece Core Data (290)
  • Dodawanie, edytowanie i usuwanie obiektów zarządzanych (293)
    • Wstawianie nowego obiektu zarządzanego (293)
    • Usuwanie obiektu zarządzanego (294)
    • Edycja istniejącego obiektu zarządzanego (294)
    • Zapisywanie i wycofywanie zmian (295)
  • Podsumowanie (296)
  • Ćwiczenia (297)

Rozdział 14. Mechanizmy języka (299)

  • Literały (300)
    • NSNumber (300)
    • NSArray (301)
    • NSDictionary (301)
    • Opakowania (302)
  • Automatyczne zliczanie referencji (302)
    • Stosowanie ARC w nowym projekcie (303)
    • Konwersja istniejącego projektu na ARC (303)
    • Jak stosować ARC (305)
    • Kwalifikatory ARC (307)
  • Bloki (307)
    • Deklarowanie i stosowanie bloków (308)
    • Przechwytywanie stanu za pomocą bloków (309)
    • Bloki jako parametry metod (310)
    • Pamięć, wątki i bloki (311)
  • Właściwości (313)
    • Deklarowanie właściwości (313)
    • Syntetyzacja właściwości (315)
    • Dostęp do właściwości (315)
    • Notacja kropkowa (315)
  • Szybkie wyliczenia (316)
  • Podmiana metod (317)
  • Podsumowanie (319)
  • Ćwiczenia (320)

Rozdział 15. Integracja Twittera i Facebooka z wykorzystaniem frameworku społecznościowego (321)

  • Integracja z usługami społecznościowymi (321)
  • Przykładowa aplikacja (322)
  • Logowanie (323)
  • Stosowanie klasy SLComposeViewController (324)
  • Wysyłanie wiadomości za pomocą własnego interfejsu (326)
    • Wysyłanie komunikatów do serwisu Twitter (327)
    • Wysyłanie wiadomości do Facebooka (330)
    • Tworzenie aplikacji do serwisu Facebook (330)
  • Dostęp do osi czasu użytkownika (336)
    • Twitter (337)
    • Facebook (341)
  • Podsumowanie (345)
  • Ćwiczenia (345)

Rozdział 16. Obsługa zadań działających w tle (347)

  • Przykładowa aplikacja (348)
  • Sprawdzanie dostępności zadań w tle (348)
  • Kończenie zadania działającego w tle (349)
    • Identyfikator zadania w tle (350)
    • Metoda obsługi wygaśnięcia (350)
    • Kończenie zadania w tle (351)
  • Implementacja aktywności wykonywanych w tle (352)
    • Rodzaje aktywności wykonywanych w tle (353)
    • Odtwarzanie muzyki w tle (354)
  • Podsumowanie (356)
  • Ćwiczenia (357)

Rozdział 17. Grand Central Dispatch a wydajność (359)

  • Przykładowa aplikacja (359)
  • Wprowadzenie do kolejek (361)
  • Wykonywanie operacji w głównym wątku (361)
  • Działanie w tle (363)
  • Uruchamianie kolejki operacji (365)
    • Operacje współbieżne (366)
    • Operacje szeregowe (367)
    • Anulowanie operacji (369)
    • Własne operacje (369)
  • Uruchamianie kolejki dyspozytora (371)
    • Współbieżne kolejki dyspozytora (372)
    • Szeregowe kolejki dyspozytora (373)
  • Podsumowanie (375)
  • Ćwiczenia (376)

Rozdział 18. Stosowanie pęków kluczy do zabezpieczania danych (377)

  • Wprowadzenie do przykładowej aplikacji (378)
  • Konfiguracja i stosowanie pęku kluczy (378)
    • Konfiguracja obiektu klasy KeychainItemWrapper (379)
    • Przechowywanie i pobieranie PIN-u (380)
    • Klucze atrybutów pęku kluczy (381)
    • Zabezpieczanie słownika (382)
    • Resetowanie elementu pęku kluczy (384)
    • Współdzielenie pęku kluczy pomiędzy aplikacjami (384)
    • Kody błędów pęków kluczy (385)
  • Podsumowanie (386)
  • Ćwiczenia (386)

Rozdział 19. Operacje na filtrach i obrazkach (387)

  • Przykładowa aplikacja (387)
  • Zasady obsługi i wyświetlania obrazków (388)
    • Tworzenie obiektu obrazka (388)
    • Wyświetlanie obrazka (389)
    • Stosowanie kontrolki Image Picker (391)
    • Zmiana rozmiaru obrazka (394)
  • Filtry biblioteki Core Image (395)
    • Kategorie filtrów a filtry (395)
    • Atrybuty filtra (397)
    • Inicjalizacja obrazka (400)
    • Renderowanie przefiltrowanego obrazka (401)
    • Łączenie filtrów (401)
  • Wykrywanie twarzy (403)
    • Konfiguracja detektora twarzy (403)
    • Przetwarzanie rysów twarzy (404)
  • Podsumowanie (405)
  • Ćwiczenia (406)

Rozdział 20. Widoki kolekcji (407)

  • Przykładowa aplikacja (407)
  • Wprowadzamy widoki kolekcji (408)
    • Konfigurowanie widoku kolekcji (408)
    • Implementacja metod źródła danych dla widoku kolekcji (411)
    • Implementacja metod delegacji widoku kolekcji (413)
  • Dostosowywanie widoku kolekcji i układu przepływu (415)
    • Podstawowe modyfikacje (415)
    • Widoki dekoracyjne (416)
  • Tworzenie własnych układów (420)
  • Animacje widoku kolekcji (424)
    • Zmiany układu widoku kolekcji (424)
    • Animacje układu widoku kolekcji (426)
    • Animacje zmiany widoku kolekcji (427)
  • Podsumowanie (428)
  • Ćwiczenia (428)

Rozdział 21. Wprowadzenie do TextKit (429)

  • Przykładowa aplikacja (430)
  • Klasa NSLayoutManager (430)
    • NSTextStore (431)
  • Dynamiczne wykrywanie hiperłączy (433)
  • Wykrywanie trafień (434)
  • Ścieżki wyłączające (435)
  • Podświetlanie uzależnione od treści (436)
  • Zmiana ustawień czcionki dla typów dynamicznych (441)
  • Podsumowanie (442)
  • Ćwiczenia (442)

Rozdział 22. Rozpoznawanie gestów (443)

  • Rodzaje detektorów gestów (443)
  • Sposoby użycia detektorów gestów (444)
  • Wprowadzenie do przykładowej aplikacji (444)
    • Detektor stuknięć (445)
    • Detektor szczypnięć (446)
  • Wiele detektorów w jednym widoku (448)
    • Detektory gestów - z czym to się je (450)
    • Wiele detektorów w jednym widoku - reduks (451)
    • Wykrywanie nieudanych gestów (453)
  • Tworzenie własnych podklas UIGestureRecognizer (454)
  • Podsumowanie (455)
  • Ćwiczenie (455)

Rozdział 23. Obsługa bibliotek zdjęć (457)

  • Przykładowa aplikacja (457)
  • Biblioteka zasobów (458)
  • Wyliczanie zasobów i grup zasobów (458)
    • Uprawnienia (459)
    • Grupy (460)
    • Zbiory (464)
  • Wyświetlanie zasobów (466)
  • Zapisywanie na rolce aparatu (470)
  • Obsługa strumienia zdjęć (472)
  • Podsumowanie (474)
  • Ćwiczenia (474)

Rozdział 24. Passbook i PassKit (475)

  • Przykładowa aplikacja (476)
  • Projektowanie kuponu (477)
    • Rodzaje kuponów (477)
    • Bilet podróżny - układ (478)
    • Kupon zniżkowy - układ (478)
    • Wydarzenie - układ (478)
    • Kupon ogólny - układ (479)
    • Karta podarunkowa - układ (480)
    • Wyświetlanie kuponu (481)
  • Tworzenie kuponu (482)
    • Identyfikacja kuponu (484)
    • Istotne informacje na temat kuponu (484)
    • Identyfikacja kodu kreskowego (485)
    • Informacje na temat wyglądu kuponu (486)
    • Pola kuponu (486)
  • Podpisywanie i tworzenie paczki kuponu (489)
    • Tworzenie identyfikatora typu kuponu (489)
    • Tworzenie certyfikatu podpisywania kuponów (491)
    • Tworzenie manifestu (495)
    • Podpisywanie i tworzenie paczki dla kuponu (495)
    • Testowanie kuponu (496)
    • Interakcja z kuponami z poziomu aplikacji (497)
  • Automatyczna aktualizacja kuponów (506)
  • Podsumowanie (507)
  • Ćwiczenia (507)

Rozdział 25. Debugowanie i narzędzia (509)

  • Wprowadzenie do debugowania (509)
    • Pierwszy błąd w programie komputerowym (510)
    • Podstawy debugowania w Xcode (510)
  • Punkty przerwania (512)
    • Dostosowywanie punktów przerwania (513)
    • Punkty przerwania wyjątków i symboliczne punkty przerwania (514)
    • Zasięg punktu przerwania (514)
  • Praca z debuggerem (515)
  • Dodatkowe narzędzia - instrumenty (517)
    • Interfejs instrumentów (518)
    • Odkrywamy instrumenty - profiler czasowy (520)
    • Odkrywamy instrumenty - wycieki pamięci (522)
    • Co dalej z instrumentami? (525)
  • Podsumowanie (526)
  • Ćwiczenia (526)

Skorowidz (527)

  • Titel: iOS. Tajniki SDK. Biblioteka przydatnych narzędzi
  • Autor: Kyle Richter, Joe Keeley
  • Originaler Titel: iOS Components and Frameworks: Understanding the Advanced Features of the iOS SDK (Developer's Library)
  • Übersetzung: Krzysztof Rychlicki-Kicior
  • ISBN: 978-83-246-9183-8, 9788324691838
  • Veröffentlichungsdatum: 2014-09-08
  • Format: E-book
  • Artikelkennung: iostaj
  • Verleger: Helion