E-book details

iOS. Tajniki SDK. Biblioteka przydatnych narzędzi

iOS. Tajniki SDK. Biblioteka przydatnych narzędzi

Kyle Richter, Joe Keeley

Ebook

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)

  • Title: iOS. Tajniki SDK. Biblioteka przydatnych narzędzi
  • Author: Kyle Richter, Joe Keeley
  • Original title: iOS Components and Frameworks: Understanding the Advanced Features of the iOS SDK (Developer's Library)
  • Translation: Krzysztof Rychlicki-Kicior
  • ISBN: 978-83-246-9183-8, 9788324691838
  • Date of issue: 2014-09-08
  • Format: Ebook
  • Item ID: iostaj
  • Publisher: Helion