Details zum E-Book

Programowanie w języku Swift. Big Nerd Ranch Guide

Programowanie w języku Swift. Big Nerd Ranch Guide

Matthew Mathias, John Gallagher

E-book
Swift, następca języka Objective-C, pojawił się na rynku w 2014 roku i bardzo szybko zyskuje popularność wśród programistów tworzących aplikacje dla iOS oraz macOS. Charakteryzuje się zwięzłą i przejrzystą składnią, a co więcej, pozwala na korzystanie z nowoczesnych, wysokopoziomowych struktur i cech języka, takich jak typy generyczne czy domknięcia. Jest przy tym wygodny i elastyczny, a jego nauka nie powinna sprawiać problemów nawet tym, którzy dopiero rozpoczynają swoją przygodę z programowaniem.

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.

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)

  • Titel: Programowanie w języku Swift. Big Nerd Ranch Guide
  • Autor: Matthew Mathias, John Gallagher
  • Originaler Titel: Swift Programming: The Big Nerd Ranch Guide (Big Nerd Ranch Guides)
  • Übersetzung: Robert Górczyński, Radosław Lesisz
  • ISBN: 978-83-283-3143-3, 9788328331433
  • Veröffentlichungsdatum: 2017-01-16
  • Format: E-book
  • Artikelkennung: pswfdp
  • Verleger: Helion