E-book details

Swift 4. Koduj jak mistrz. Wydanie IV

Swift 4. Koduj jak mistrz. Wydanie IV

Jon Hoffman

Ebook

Historia Swifta rozpoczęła się w 2014 r. Dziś jest najważniejszym językiem programowania dla platform macOS i iOS. Charakteryzuje się zwięzłą i przejrzystą składnią, jest przy tym wygodny i elastyczny, a jego nauka nie powinna sprawiać problemów nawet początkującym deweloperom. Od chwili jego powstania Apple co roku przedstawia nowe wydanie tego języka. Na konferencji WWDC w 2017 roku zaprezentowano wydanie o numerze 4, w którym wprowadzono sporo bardzo interesujących zmian. Każdy, kto chce pisać efektywne i bezpieczne aplikacje dla macOS i iOS, koniecznie powinien się z nimi zapoznać!

Niniejsza książka jest praktycznym podręcznikiem efektywnego programowania w języku Swift 4. Znajdziesz tu wyjaśnienie podstaw języka, następnie poznasz nowe funkcje i nauczysz się z nich korzystać podczas tworzenia aplikacji. Poza dość zasadniczymi kwestiami przedstawiono tu również zagadnienia zaawansowane, takie jak łączenie w projekcie kodu Objective-C i Swift, wykorzystanie mechanizmu ARC, używanie domknięć i zastosowanie programowania równoległego. Bardzo ciekawymi tematami poruszonymi w książce są rozszerzenia protokołów, obsługa błędów, stosowanie wzorców projektowych i współbieżności. Poznasz potężne możliwości programowania zorientowanego na protokoły. Szybko nauczysz się pisać elastyczny i łatwy w zarządzaniu kod.

W tej książce między innymi:

  • składnia i elementy języka Swift
  • kontrola przepływu działania programu
  • tworzenie bezpiecznego kodu i obsługa błędów
  • typy opcjonalne, typy generyczne i domknięcia
  • zasady pisania eleganckiego i czytelnego kodu
  • podstawowe biblioteki Swifta i wzorce projektowe

Swift 4: programuj po mistrzowsku!

O autorze (11)

O recenzencie technicznym (12)

Wprowadzenie (13)

Rozdział 1. Pierwsze kroki w języku Swift (17)

  • Czym jest Swift? (18)
    • Funkcje języka Swift (19)
  • Plik typu playground (21)
    • Rozpoczęcie pracy z plikiem typu playground (21)
    • Typ pliku playground (24)
    • Wyświetlanie obrazu w pliku playground (25)
    • Tworzenie i wyświetlanie wykresu w pliku playground (28)
    • Czym nie jest plik typu playground? (29)
    • Składnia języka Swift (29)
    • Komentarze (30)
    • Średniki (32)
    • Nawiasy okrągłe (33)
    • Nawiasy klamrowe (33)
    • Operator przypisania nie zwraca wartości (34)
    • Białe znaki w konstrukcjach warunkowych i poleceniach przypisania są opcjonalne (35)
  • Program wyświetlający komunikat Witaj, świecie! (35)
  • Podsumowanie (37)

Rozdział 2. Zmienne, stałe, ciągi tekstowe i operatory (39)

  • Zmienne i stałe (40)
    • Definiowanie zmiennych i stałych (41)
    • Bezpieczeństwo typu (42)
    • Inferencja typu (43)
    • Jawne określenie typu (43)
    • Typy liczbowe (44)
    • Wartości boolowskie (48)
    • Ciąg tekstowy (48)
    • Zmienne typu opcjonalnego (52)
    • Dołączanie wartości typu opcjonalnego (54)
    • Łączenie wartości typu opcjonalnego (55)
    • Typy wyliczeniowe (57)
  • Operatory (61)
    • Operator przypisania (61)
    • Operatory porównania (61)
    • Operatory arytmetyczne (62)
    • Operator reszty z dzielenia (62)
    • Złożone operatory przypisania (63)
    • Trójargumentowy operator warunkowy (63)
    • Operator logiczny NOT (63)
    • Operator logiczny AND (64)
    • Operator logiczny OR (64)
  • Podsumowanie (64)

Rozdział 3. Krotki i kolekcje (67)

  • Typy kolekcji w Swifcie (67)
  • Modyfikowalność (68)
  • Tablica (68)
    • Tworzenie oraz inicjalizacja tablicy (69)
    • Uzyskanie dostępu do elementu tablicy (70)
    • Zliczanie elementów tablicy (71)
    • Czy tablica jest pusta? (72)
    • Dodawanie elementu do tablicy (72)
    • Wstawienie wartości do tablicy (73)
    • Zastępowanie elementu tablicy (73)
    • Usunięcie elementu z tablicy (73)
    • Połączenie dwóch tablic (74)
    • Pobranie podtablicy z tablicy (74)
    • Wprowadzenie wielu zmian w tablicy (75)
    • Algorytmy dla tablic (75)
    • Iteracja przez tablicę (78)
  • Słownik (79)
    • Utworzenie oraz inicjalizacja słownika (79)
    • Uzyskanie dostępu do wartości słownika (80)
    • Zliczanie kluczy lub wartości w słowniku (80)
    • Czy słownik jest pusty? (80)
    • Uaktualnienie wartości klucza (81)
    • Dodanie pary klucz-wartość (81)
    • Usunięcie pary klucz-wartość (82)
  • Zbiór (82)
    • Inicjalizacja zbioru (82)
    • Wstawianie elementów do zbioru (83)
    • Określenie liczby elementów w zbiorze (83)
    • Sprawdzenie, czy zbiór zawiera dany element (84)
    • Iteracja przez zbiór (84)
    • Usunięcie elementu zbioru (84)
    • Operacje na zbiorze (84)
  • Krotka (86)
  • Podsumowanie (87)

Rozdział 4. Funkcje programu i sterowanie przebiegiem ich działania (89)

  • Czego nauczyłeś się dotąd z książki? (90)
    • Nawias klamrowy (90)
    • Nawias okrągły (90)
  • Sterowanie przebiegiem działania programu (91)
    • Konstrukcje warunkowe (91)
    • Pętla for-in (94)
    • Pętla while (96)
    • Konstrukcja switch (97)
    • Używanie bloków case i klauzul where w konstrukcjach warunkowych (101)
    • Polecenia transferu kontroli (105)
  • Funkcje (107)
    • Funkcja z pojedynczym parametrem (107)
    • Funkcja z wieloma parametrami (109)
    • Zdefiniowanie wartości domyślnych parametrów (109)
    • Zwrot wielu wartości przez funkcję (110)
    • Zwrot wartości typu opcjonalnego (111)
    • Dodawanie zewnętrznych nazw parametrów (112)
    • Używanie parametrów wariadycznych (113)
    • Parametr inout (114)
  • Zebranie wszystkiego w całość (114)
  • Podsumowanie (115)

Rozdział 5. Klasy i struktury (117)

  • Czym są klasy i struktury? (118)
    • Podobieństwa między klasami i strukturami (118)
    • Różnice między klasami i strukturami (118)
    • Przekazywanie przez wartość kontra przez referencję (119)
  • Utworzenie klasy lub struktury (120)
    • Właściwość (120)
    • Właściwość przechowywana (120)
    • Właściwość obliczana (122)
    • Obserwator właściwości (125)
    • Metoda (126)
  • Własna metoda inicjalizacyjna (128)
    • Wewnętrzne i zewnętrzne nazwy parametru metody inicjalizacyjnej (130)
    • Metoda inicjalizacyjna, której działanie może zakończyć się niepowodzeniem (130)
  • Kontrola dostępu (132)
  • Dziedziczenie (133)
  • Nadpisanie metody lub właściwości (135)
    • Nadpisywanie metody (136)
    • Nadpisywanie właściwości (137)
    • Uniemożliwianie nadpisywania (138)
  • Protokoły (138)
  • Składnia protokołu (139)
    • Wymagania właściwości (139)
    • Wymagania metody (140)
  • Rozszerzenie (142)
  • Zarządzanie pamięcią (143)
    • Sposób działania mechanizmu ARC (143)
    • Cykl silnych odwołań (145)
  • Podsumowanie (149)

Rozdział 6. Protokoły i rozszerzenia protokołów (151)

  • Protokół jako typ danych (152)
  • Polimorfizm za pomocą protokołów (154)
  • Rzutowanie typu i protokół (154)
  • Rozszerzenie protokołu (156)
  • Czy trzeba używać protokołów? (163)
  • Biblioteka standardowa Swifta (164)
  • Podsumowanie (165)

Rozdział 7. Projekt oparty na protokołach (167)

  • Wymagania (168)
  • Projekt zorientowany obiektowo (168)
  • Projekt zorientowany na protokoły (174)
    • Dziedziczenie protokołu (174)
    • Kompozycja protokołu (175)
    • Programowanie zorientowane na protokoły (176)
    • Używanie klauzuli where z protokołem (179)
  • Struktura kontra klasa (180)
  • Struktura tablicy (181)
  • Podsumowanie (182)

Rozdział 8. Tworzenie bezpiecznego kodu za pomocą atrybutu available i obsługi błędów (183)

  • Natywna obsługa błędów (184)
    • Przedstawienie błędu (184)
    • Zgłaszanie błędu (185)
    • Przechwytywanie błędu (187)
  • Atrybut available (191)
  • Podsumowanie (192)

Rozdział 9. Niestandardowe indeksy (193)

  • Wprowadzenie do indeksów (194)
  • Indeks w tablicy Swifta (194)
  • Tworzenie i używanie niestandardowego indeksu (195)
  • Niestandardowy indeks tylko do odczytu (196)
  • Indeks obliczany (197)
  • Wartość indeksu (197)
  • Nazwa zewnętrzna dla indeksu (198)
  • Indeks wielowymiarowy (198)
  • Kiedy nie należy używać niestandardowego indeksu? (201)
  • Podsumowanie (202)

Rozdział 10. Typy opcjonalne (203)

  • Wprowadzenie do typu opcjonalnego (203)
  • Potrzeba istnienia typów opcjonalnych w Swifcie (205)
    • Definiowanie wartości typu opcjonalnego (206)
    • Używanie wartości typu opcjonalnego (206)
  • Łączenie wartości typu opcjonalnego (211)
    • Operator koalescencji nil (213)
  • Podsumowanie (214)

Rozdział 11. Typy generyczne (215)

  • Wprowadzenie do typu generycznego (215)
  • Funkcja generyczna (216)
  • Typ generyczny (220)
  • Indeks generyczny (223)
  • Typ powiązany (224)
  • Podsumowanie (226)

Rozdział 12. Domknięcia (227)

  • Wprowadzenie do domknięcia (227)
  • Proste domknięcia (228)
  • Skrócona składnia domknięcia (230)
  • Używanie domknięcia wraz z algorytmem tablicy Swifta (233)
  • Samodzielne domknięcia i wskazówki dotyczące dobrego stylu (237)
  • Zmiana funkcjonalności (239)
  • Wybór domknięcia na podstawie wyniku (242)
  • Utworzenie cyklu silnych odwołań za pomocą domknięć (244)
  • Podsumowanie (247)

Rozdział 13. Połączenie Swifta i Objective-C (249)

  • Połączenie Swifta i Objective-C (249)
  • Kiedy łączyć kod Swifta i Objective-C? (250)
  • Użycie Swifta i Objective-C w tym samym projekcie (251)
    • Utworzenie projektu (251)
    • Dodawanie pliku Swifta do projektu Objective-C (253)
    • Plik Objective-C Bridging Header - część 1. (255)
    • Dodawanie pliku Objective-C do projektu (256)
    • Klasa Objective-C Messages (258)
    • Plik Objective-C Bridging Header - część 2. (259)
    • Klasa Swifta MessageBuilder - dostęp do kodu Objective-C z poziomu Swifta (259)
    • Klasa Objective-C - dostęp do kodu Swifta z poziomu Objective-C (260)
  • Podsumowanie (261)

Rozdział 14. Programowanie równoległe i współbieżność (263)

  • Równoległość i współbieżność (264)
    • Grand Central Dispatch (265)
    • Typ DoCalculations (266)
    • Użycie typów Operation i OperationQueue (272)
  • Podsumowanie (277)

Rozdział 15. Formatowanie kodu Swifta i przewodnik po jego stylu (279)

  • Czym jest styl programowania? (280)
  • Twój styl programowania (281)
    • Nie używaj średnika na końcu polecenia (281)
    • Nie używaj nawiasu w konstrukcji warunkowej (281)
    • Konwencja nazw (282)
    • Komentarze (283)
    • Użycie słowa kluczowego self (284)
    • Stałe i zmienne (285)
    • Typy opcjonalne (285)
    • Użycie inferencji typu (286)
    • Użycie skróconych deklaracji kolekcji (287)
    • Użycie konstrukcji switch zamiast wielu poleceń if (287)
    • Nie pozostawiaj w aplikacji kodu umieszczonego w komentarzu (287)
  • Podsumowanie (288)

Rozdział 16. Podstawowe biblioteki Swifta (289)

  • System wczytywania adresów URL (290)
    • URLSession (291)
    • URLSessionConfiguration (291)
    • URLSessionTask (291)
    • URL (292)
    • URLRequest (292)
    • HTTPURLResponse (292)
    • Usługa sieciowa typu REST (292)
    • Wykonywanie żądania HTTP GET (293)
    • Wykonywanie żądania HTTP POST (296)
  • Formatter (298)
    • DateFormatter (298)
    • NumberFormatter (300)
    • FileManager (301)
  • Kodowanie i dekodowanie danych JSON (304)
    • Użycie JSONEncoder (305)
    • Użycie JSONDecoder (306)
  • Podsumowanie (307)

Rozdział 17. Wzorce projektowe w Swifcie (309)

  • Czym są wzorce projektowe? (310)
  • Wzorce konstrukcyjne (311)
    • Wzorzec singleton (312)
    • Wzorzec budowniczego (315)
  • Wzorce strukturalne (320)
    • Wzorzec mostu (320)
    • Wzorzec fasady (324)
    • Wzorzec pełnomocnika (327)
  • Wzorce operacyjne (330)
    • Wzorzec polecenia (330)
    • Wzorzec strategii (333)
  • Podsumowanie (335)

Skorowidz (337)

  • Title: Swift 4. Koduj jak mistrz. Wydanie IV
  • Author: Jon Hoffman
  • Original title: Mastering Swift 4 - Fourth Edition
  • Translation: Robert Górczyński
  • ISBN: 978-83-283-4795-3, 9788328347953
  • Date of issue: 2018-10-05
  • Format: Ebook
  • Item ID: sw4km4
  • Publisher: Helion