Programowanie w języku Swift. Big Nerd Ranch Guide - ebook
Programowanie w języku Swift. Big Nerd Ranch Guide - ebook
Ta książka jest starannie przygotowanym, praktycznym podręcznikiem efektywnego programowania w języku Swift 3. Wyczerpująco przedstawiono tu zasady posługiwania się środowiskiem programistycznym Xcode 8 i dokumentacją Apple. Dzięki niej zyskasz wiedzę i umiejętności pozwalające na samodzielne rozwiązywanie problemów programistycznych z użyciem języka Swift. Innymi słowy, zaczniesz programować kompletne, efektywne i dojrzałe aplikacje dla platform iOS i macOS.
W tej książce:
- przedstawiono podstawy składni języka Swift
- omówiono konstrukcje służące do kontroli przepływu działania programu
- pokazano, jak korzystać z kolekcji, typów wyliczeniowych, struktur i klas
- zaprezentowano zasady budowania eleganckiego, czytelnego i efektywnego kodu
- przedstawiono metody projektowania aplikacji opartej na zdarzeniach
Swift: wyjątkowe narzędzie do budowy wyjątkowych aplikacji dla Apple!
Matt Mathias — jest doktorem socjologii i dyrektorem działu szkoleń w firmie Big Nerd Ranch. Uczy programowania na platformie iOS. Uwielbia jazdę na rowerze, komiksy oraz wszelkiego rodzaju gry.
John Gallagher — jest inżynierem oprogramowania i instruktorem w Big Nerd Ranch. Jest znawcą systemów wbudowanych i superkomputerów. Pasjonuje go poznawanie nowych języków programowania. Kiedy nie zajmuje się pracą, spędza czas wolny z żoną i z trzema córkami.
Spis treści
Wprowadzenie (13)
- Poznawanie języka Swift (13)
- Dokąd zmierza Objective-C? (13)
- Przygotowania (14)
- W jaki sposób zorganizowana jest ta książka? (14)
- Jak korzystać z tej książki? (15)
- Zadania (15)
- Dla bardziej dociekliwych (16)
- Konwencje typograficzne (16)
- Niezbędny sprzęt i oprogramowanie (16)
- Zanim zaczniemy (16)
CZĘŚĆ I. ROZPOCZĘCIE PRACY
1. Rozpoczęcie pracy (21)
- Rozpoczęcie pracy z Xcode (21)
- Praca z plikiem typu playground (23)
- Zmienne i wyświetlanie danych w konsoli (25)
- Jesteś na dobrej drodze! (27)
- Zadanie na brązowy medal (28)
2. Typy, stałe i zmienne (29)
- Typy (29)
- Stała kontra zmienna (31)
- Interpolacja ciągu tekstowego (32)
- Zadanie na brązowy medal (33)
CZĘŚĆ II. PODSTAWY
3. Konstrukcje warunkowe (37)
- Konstrukcja if-else (37)
- Operator trójargumentowy (40)
- Zagnieżdżone konstrukcje if (41)
- Konstrukcja else if (42)
- Zadanie na brązowy medal (43)
4. Liczby (45)
- Liczby całkowite (45)
- Tworzenie egzemplarza liczby całkowitej (47)
- Operacje na liczbach całkowitych (49)
- Dzielenie liczb całkowitych (50)
- Skróty operatorów (50)
- Operatory przepełnienia (51)
- Konwersja między typami liczb całkowitych (53)
- Liczby zmiennoprzecinkowe (54)
- Zadanie na brązowy medal (56)
5. Konstrukcja switch (57)
- Czym jest konstrukcja switch? (57)
- Zaczynamy pracę z konstrukcją switch (58)
- Zakres (61)
- Dołączanie wartości (62)
- Klauzula where (64)
- Krotka i dopasowanie wzorca (65)
- Konstrukcja switch kontra if-else (68)
- Zadanie na brązowy medal (70)
6. Pętle (71)
- Pętle for-in (71)
- Pętla for case (74)
- Krótka uwaga dotycząca inferencji typu (75)
- Pętla for (76)
- Pętla while (77)
- Pętla repeat-while (78)
- Polecenia transferu kontroli (ponownie) (78)
- Zadanie na brązowy medal (81)
7. Ciągi tekstowe (83)
- Praca z ciągami tekstowymi (83)
- Unicode (85)
- Skalary Unicode (85)
- Odpowiednik kanoniczny (88)
- Zadanie na srebrny medal (91)
8. Typ Optional (93)
- Typy Optional (93)
- Dołączanie typu Optional (95)
- Niejawne rozpakowanie typu Optional (98)
- Łączenie typów Optional (99)
- Modyfikacja typu Optional w miejscu (100)
- Operator koalescencji (100)
- Zadanie na srebrny medal (102)
CZĘŚĆ III. KOLEKCJE I FUNKCJE
9. Tablice (105)
- Tworzenie tablicy (105)
- Uzyskanie dostępu do tablicy i jej modyfikacja (107)
- Porównywanie tablic (113)
- Tablice niemodyfikowalne (115)
- Dokumentacja (116)
- Zadanie na brązowy medal (116)
- Zadanie na srebrny medal (117)
10. Słowniki (119)
- Utworzenie słownika (119)
- Zapełnienie słownika (120)
- Uzyskanie dostępu do słownika i jego modyfikacja (121)
- Dodawanie i usuwanie wartości (123)
- Użycie pętli wraz ze słownikiem (125)
- Słowniki niemodyfikowalne (126)
- Konwersja słownika na tablicę (126)
- Zadanie na srebrny medal (127)
11. Zbiory (129)
- Czym jest zbiór? (129)
- Utworzenie zbioru (130)
- Praca ze zbiorami (131)
- Unie (131)
- Część wspólna zbiorów (133)
- Te same elementy w zbiorach (134)
- Zadanie na brązowy medal (135)
- Zadanie na srebrny medal (135)
12. Funkcje (137)
- Prosta funkcja (137)
- Parametry funkcji (138)
- Nazwy parametrów (139)
- Parametry wariadyczne (140)
- Wartość domyślna parametru (141)
- Parametry in-out (142)
- Zwrot wartości przez funkcję (144)
- Funkcje zagnieżdżone i zasięg (144)
- Zwrot wielu wartości (145)
- Wartość zwrotna typu Optional (147)
- Wcześniejsze zakończenie wykonywania funkcji (148)
- Typy funkcji (149)
- Zadanie na brązowy medal (149)
- Zadanie na srebrny medal (150)
13. Domknięcia (151)
- Składnia domknięcia (151)
- Składnia wyrażenia domknięcia (153)
- Funkcja jako typ wartości zwrotnej (155)
- Funkcja jako argument (157)
- Wartości przechwytywane przez domknięcie (159)
- Domknięcie jako typ odwołania (161)
- Programowanie funkcyjne (162)
- Funkcje wyższego rzędu (163)
- Zadanie na złoty medal (165)
CZĘŚĆ IV. TYPY WYLICZENIOWE, STRUKTURY I KLASY
14. Typy wyliczeniowe (169)
- Podstawowe typy wyliczeniowe (169)
- Wartości pierwotne w typie wyliczeniowym (173)
- Metody (176)
- Powiązane wartości (179)
- Rekurencyjny typ wyliczeniowy (182)
- Zadanie na brązowy medal (185)
- Zadanie na srebrny medal (185)
15. Struktury i klasy (187)
- Nowy projekt (187)
- Struktury (192)
- Metody egzemplarza (195)
- Mutowanie metod (196)
- Klasy (197)
- Klasa Monster (197)
- Dziedziczenie (199)
- Nazwy parametrów metody (203)
- Której konstrukcji użyć? (204)
- Zadanie na brązowy medal (204)
- Zadanie na srebrny medal (204)
- Dla bardziej dociekliwych - metody typu (204)
- Dla bardziej dociekliwych - rozwijanie funkcji (205)
16. Właściwości (213)
- Podstawowe właściwości składowane (213)
- Typy zagnieżdżone (214)
- Opóźnione właściwości składowane (215)
- Właściwości obliczane (218)
- Metody getter i setter (219)
- Obserwatorzy właściwości (221)
- Właściwości typu (222)
- Kontrola dostępu (226)
- Kontrola dostępu metod getter i setter (227)
- Zadanie na brązowy medal (229)
- Zadanie na srebrny medal (229)
- Zadanie na złoty medal (229)
17. Inicjalizacja (231)
- Składnia metody inicjalizacyjnej (231)
- Inicjalizacja struktury (232)
- Domyślna metoda inicjalizacyjna dla struktury (232)
- Niestandardowa metoda inicjalizacyjna dla struktury (233)
- Inicjalizacja klasy (238)
- Domyślne metody inicjalizacyjne klas (238)
- Inicjalizacja i dziedziczenie klasy (238)
- Wymagane metody inicjalizacyjne dla klasy (245)
- Deinicjalizacja (246)
- Metody inicjalizacyjne, których działanie może zakończyć się niepowodzeniem (248)
- Metoda inicjalizacyjna klasy Town, która może zakończyć działanie niepowodzeniem (248)
- Metody inicjalizacyjne, których działanie może zakończyć się niepowodzeniem w klasach (251)
- Inicjalizacja w przyszłości (252)
- Zadanie na srebrny medal (253)
- Zadanie na złoty medal (253)
- Dla bardziej dociekliwych - parametry metody inicjalizacyjnej (253)
18. Typy wartości kontra typy odwołania (255)
- Semantyka wartości (255)
- Semantyka odwołania (258)
- Wartość stałej i typ odwołania (260)
- Użycie typów wartości i odwołania razem (263)
- Niemodyfikowalne typy odwołania (264)
- Kopiowanie (264)
- Identyczność kontra równość (267)
- Którego rozwiązania powinieneś używać? (267)
CZĘŚĆ V. ZAAWANSOWANY SWIFT
19. Protokoły (271)
- Formatowanie tabeli danych (271)
- Protokoły (276)
- Zgodność z protokołem (280)
- Dziedziczenie protokołu (282)
- Kompozycja protokołu (283)
- Mutowanie metod (284)
- Zadanie na srebrny medal (285)
- Zadanie na złoty medal (285)
20. Obsługa błędów (287)
- Klasy błędów (287)
- Analiza leksykalna danych wejściowych (288)
- Przechwytywanie błędów (296)
- Przetwarzanie tablicy tokenów (297)
- Obsługa błędów przez chowanie głowy w piasku (302)
- Filozofia obsługi błędów w języku Swift (305)
- Zadanie na brązowy medal (306)
- Zadanie na srebrny medal (307)
- Zadanie na złoty medal (307)
21. Rozszerzenia (309)
- Rozbudowa istniejącego typu (309)
- Rozszerzanie własnego typu (311)
- Użycie rozszerzenia w celu zapewnienia zgodności z protokołem (312)
- Dodanie metody inicjalizacyjnej w rozszerzeniu (313)
- Zagnieżdżone typy i rozszerzenia (314)
- Rozszerzenia wraz z funkcjami (315)
- Pierwsze zadanie na brązowy medal (317)
- Drugie zadanie na brązowy medal (317)
- Zadanie na srebrny medal (317)
22. Generyki (319)
- Struktury danych generyków (319)
- Funkcje i metody generyków (322)
- Ograniczenia typu (324)
- Powiązane typy protokołów (325)
- Ograniczenia typu i klauzule where (329)
- Zadanie na brązowy medal (331)
- Zadanie na srebrny medal (331)
- Zadanie na złoty medal (331)
- Dla bardziej dociekliwych - lepsze zrozumienie typu Optional (331)
- Dla bardziej dociekliwych - polimorfizm parametryczny (332)
23. Rozszerzenia protokołu (333)
- Modelowanie ćwiczenia fizycznego (333)
- Rozszerzenie protokołu ExerciseType (335)
- Rozszerzenie protokołu wraz z klauzulą where (336)
- Domyślne implementacje rozszerzeń protokołu (338)
- Nadawanie nazw - opowieść ku przestrodze (340)
- Zadanie na brązowy medal (342)
- Zadanie na złoty medal (342)
24. Zarządzanie pamięcią i ARC (343)
- Alokacja pamięci (343)
- Cykle silnych odwołań (344)
- Cykle odwołań w domknięciach (350)
- Zadanie na brązowy medal (354)
- Zadanie na srebrny medal (354)
- Dla bardziej dociekliwych. Czy można pobierać licznik odwołań egzemplarza? (354)
25. Równość i porównywalność (357)
- Zgodność z protokołem Equatable (357)
- Zgodność z protokołem Comparable (360)
- Dziedziczenie logiki porównania (363)
- Zadanie na brązowy medal (364)
- Zadanie na złoty medal (364)
- Zadanie na platynowy medal (364)
- Dla bardziej dociekliwych - własne operatory (365)
CZĘŚĆ VI. APLIKACJE DZIAŁAJĄCE NA PODSTAWIE ZDARZEŃ
26. Pierwsza aplikacja Cocoa (371)
- Rozpoczęcie pracy nad aplikacją VocalTextEdit (372)
- Architektura MVC (373)
- Przygotowanie kontrolera widoku (374)
- Przygotowanie widoków w module Interface Builder (377)
- Dodanie przycisków rozpoczynających i kończących odczyt treści (378)
- Dodanie widoku tekstowego (379)
- System Auto Layout (382)
- Utworzenie połączeń (384)
- Zdefiniowanie par cel-akcja dla przycisków programu VocalTextEdit (384)
- Połączenie outletu widoku tekstowego (385)
- Wydobycie głosu przez VocalTextEdit (387)
- Zapisywanie i wczytywanie dokumentów (389)
- Rzutowanie typu (391)
- Zapis dokumentów (392)
- Wczytywanie dokumentów (394)
- Uporządkowanie kodu zgodnie z architekturą MVC (397)
- Zadanie na srebrny medal (399)
- Zadanie na złoty medal (399)
27. Pierwsza aplikacja iOS (401)
- Rozpoczęcie pracy nad aplikacją iTahDoodle (402)
- Przygotowanie interfejsu użytkownika (402)
- Połączenie ze sobą elementów interfejsu użytkownika (410)
- Modelowanie listy rzeczy do zrobienia (412)
- Przygotowanie egzemplarza UITableView (416)
- Zapisywanie i wczytywanie listy rzeczy do zrobienia (419)
- Zapisywanie listy rzeczy do zrobienia (419)
- Wczytywanie listy rzeczy do zrobienia (421)
- Zadanie na brązowy medal (422)
- Zadanie na srebrny medal (423)
- Zadanie na złoty medal (423)
28. Współdziałanie języków Swift i Objective-C (425)
- Projekt w Objective-C (425)
- Utworzenie aplikacji (427)
- Dodanie kodu w języku Swift do projektu Objective-C (435)
- Dodawanie osób (438)
- Dodanie klasy Objective-C (447)
- Zadanie na srebrny medal (454)
- Zadanie na złoty medal (454)
29. Zakończenie (455)
- Co dalej? (455)
- Bezwstydne wtyczki (455)
- Zaproszenie (456)
Skorowidz (457)
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-3143-3 |
Rozmiar pliku: | 9,6 MB |