iOS 12. Wprowadzenie do programowania w Swifcie

59,39

Opis

Podstawy Swifta, Xcode i CocoaJęzyk Swift poznaliśmy w 2014 roku. Został on opracowany przez Apple specjalnie dla platormy iOS z uwzględnieniem takich założeń, jak przejrzystość, bezpieczeństwo, prostota, łatwość stosowania, zorientowanie obiektowe. Kod w tym języku sam zarządza pamięcią i zapewnia ścisłą kontrolę typów. Swift od początku wzbudził ogromne zainteresowanie programistów, którzy prędko docenili jego zalety. Dziś jest uważany za łatwe do opanowania i bardzo wygodne narzędzie dla profesjonalistów, zwłaszcza że od pewnego czasu Apple dostarcza wraz z Swiftem aplikację Xcode oraz framework Cocoa. To wszystko sprawiło, że Swift stał się bardzo atrakcyjną alternatywą dla Objective-C.Ta książka zawiera bardzo solidne wprowadzenie do tworzenia aplikacji na platformie iOS. Znalazły się tu systematycznie przedstawione informacje na temat Swifta, Xcode i frameworka Cocoa. Podstawy języka wyjaśniono w najużyteczniejszej kolejności, koncentrując się na najczęściej stosowanych i najpraktyczniejszych aspektach Swifta. Sporo miejsca poświęcono środowisku Xcode, w którym odbywa się programowanie na platformie iOS. Omówiono, czym jest projekt, jak zmienić go na aplikację, jak tworzyć, uruchamiać i debugować kod źródłowy, a także jak zgłosić aplikację do sklepu App Store. Bardzo ważną częścią książki jest wprowadzenie do Cocoa Touch, który zapewnia najważniejsze klasy podstawowe, kategorie, protokoły, mechanizmy delegowania i powiadamiania, a także zarządzanie pamięcią.W tej książce między innymi:solidne podstawy koncepcji Swiftanajnowsze funkcje dostępne podczas programowania na iOScykl życiowy projektu Xcodekomunikacja między Swiftem a Objective-Cprogramowanie techniką klucz-wartośćSwift. Doskonałe narzędzie – znakomite efekty!Spis treści:Wprowadzenie 13CZĘŚĆ I. JĘZYK1. Architektura Swifta 23Zaczynamy 23Czy wszystko jest obiektem? 24Trzy odmiany obiektu typu 25Zmienna 26Funkcja 27Struktura pliku Swifta 28Zasięg i cykl życiowy 31Elementy składowe obiektu 32Przestrzeń nazw 32Moduł 33Egzemplarz 34Dlaczego egzemplarz? 36Słowo kluczowe self 38Prywatność 39Projekt 41Obiekt typu i API 42Tworzenie, zasięg i cykl życiowy egzemplarzy 44Podsumowanie 442. Funkcje 47Parametry funkcji i jej wartość zwrotna 47Typ wartości zwrotnej i typ parametrów 50Sygnatura funkcji 51Zewnętrzne nazwy parametrów 52Przeciążanie 53Wartość domyślna parametru 54Parametr wariadyczny 55Parametr ignorowany 55Parametr modyfikowalny 56Funkcja w funkcji 59Rekurencja 61Funkcja jako wartość 61Funkcja anonimowa 64Technika zdefiniuj i wywołaj 69Domknięcie 70Jak domknięcie pomaga usprawnić kod? 72Funkcja zwracająca funkcję 73Domknięcie przypisujące wartość przechwyconej zmiennej 75Domknięcie zachowujące przechwycone środowisko 76Dekorator @escaping 77Rozwijanie funkcji 78Selektory i odwołania funkcji 79Zasięg odwołania funkcji 81Selektor 823. Zmienne i typy proste 85Cykl życiowy i zasięg zmiennej 85Deklaracja zmiennej 87Obliczana wartość początkowa 90Zmienna obliczana 91Obserwator funkcji setter 94Inicjalizacja opóźniona 96Wbudowane typy proste 98Bool 98Liczby 100Ciąg tekstowy 107Znak i indeks ciągu tekstowego 111Zakres 116Krotka 118Typ opcjonalny 1204. Obiekt typu 133Funkcje i deklaracje obiektu typu 133Metoda inicjalizacyjna 135Właściwość 141Metoda 144Indeks 146Obiekt typu zagnieżdżonego 148Odwołanie do egzemplarza 148Wyliczenie 150Czysta wartość 151Wartość powiązana 153Iteracja przez bloki case typu wyliczeniowego 155Metoda inicjalizacyjna typu wyliczeniowego 155Właściwości typu wyliczeniowego 157Metody typu wyliczeniowego 157Dlaczego typ wyliczeniowy? 158Struktura 159Metoda inicjalizacyjna struktury oraz właściwości i metody 160Struktura jako przestrzeń nazw 161Klasa 162Typ przekazywany przez wartość i referencję 162Podklasa i superklasa 168Metoda inicjalizacyjna klasy 173Metoda dealokująca klasy 181Metody i właściwości klasy 182Polimorfizm 184Rzutowanie 187Rzutowanie w dół 187Sprawdzanie typu i bezpieczne rzutowanie w dół 188Sprawdzanie typu i rzutowanie wartości typu opcjonalnego 189Połączenie z Objective-C 190Odwołanie do typu 191Od egzemplarza do typu 191Typ jako wartość 192Słowo kluczowe Self 194Porównywanie typów 196Podsumowanie terminologii związanej z typami 196Protokół 197Dlaczego protokół? 198Rzutowanie i sprawdzanie typu protokołu 200Deklarowanie protokołu 201Łączenie protokołów 202Opcjonalne elementy składowe protokołu 203Klasa protokołu 204Niejawnie wymagana metoda inicjalizacyjna 205Łatwe do adaptacji literały 207Generyki 208Deklaracje generyka 210Sprzeczna specjalizacja 212Ograniczenia typu 213Jawna specjalizacja 215Inwariancja generyka 217Łańcuch typów powiązanych 218Klauzula where 220Rozszerzenie 223Rozszerzanie obiektu typu 223Rozszerzanie protokołu 225Rozszerzanie generyka 227Typ parasola 228Any 229AnyObject 230AnyClass 233Typy kolekcji 233Tablica 233Słownik 249Zbiór 2555. Sterowanie przepływem sposobu działania programu i nie tylko 261Sterowanie przepływem sposobu działania programu 261Odgałęzienie 262Pętla 273Przejście do innego fragmentu kodu 278Prywatność 292Poziomy prywatności private i fileprivate 293Poziomy prywatności public i open 295Reguły prywatności 295Introspekcja 296Operatory 297Implementacje protokołu syntezowanego 300Ścieżki kluczy 303Dynamiczne wyszukiwanie elementów składowych 305Zarządzanie pamięcią 306Zarządzanie pamięcią typu przekazywanego przez referencję 306Dostęp na wyłączność do typu przekazywanego przez wartość 312CZĘŚĆ II. ŚRODOWISKO IDE6. Anatomia projektu Xcode 317Nowy projekt 317Okno projektu 319Panel nawigatora 320Panel narzędziowy 325Edytor 327Pliki projektu i ich zależności 329Co się znajduje w katalogu projektu? 329Grupy 330Cel 331Opcje Build Phases 332Opcje Build Settings 333Konfiguracje 334Schemat 336Od projektu do skompilowanej aplikacji 339Ustawienia kompilacji 341Ustawienia property list 341Plik nib 342Zasoby dodatkowe 343Pliki kodu źródłowego 346Frameworki i SDK 346Proces uruchamiania aplikacji 348Punkt wejścia aplikacji 348Funkcja UIApplicationMain() 349Aplikacja bez pliku storyboard 351Zmiana nazw elementów projektu 3527. Zarządzanie plikami nib 355Edytor interfejsu nib 356Lista Document Outline 357Płótno 360Karty inspektorów i bibliotek 362Wczytywanie pliku nib 363Kiedy jest wczytywany plik nib? 364Ręczne wczytywanie pliku nib 365Połączenie 367Outlet 367Właściciel pliku nib 368Automatycznie konfigurowany plik nib 372Błędna konfiguracja outletu 373Usunięcie outletu 374Więcej sposobów na utworzenie outletów 375Kolekcja outletu 378Akcja połączenia 378Więcej sposobów na utworzenie akcji 380Błędnie skonfigurowana akcja 382Połączenia między plikami nib 382Konfiguracja dodatkowa na podstawie egzemplarzy pochodzących z pliku nib 3838. Dokumentacja 387Okno dokumentacji 387Strona dokumentacji klasy 388Dokumentacja Quick Help 392Deklaracja symbolu 393Plik nagłówkowy 395Przykładowy kod źródłowy 395Zasoby w internecie 3969. Cykl życiowy projektu 397Zależności środowiskowe 397Dozwolone środowisko uruchomieniowe 398Zapewnienie wstecznej zgodności 398Typ urządzenia 400Argumenty i zmienne środowiskowe 401Kompilacja warunkowa 402Kontrola wersji 403Edytowanie kodu źródłowego i poruszanie się po nim 407Automatyczne uzupełnianie kodu 408Fragmenty kodu 410Funkcja Fix-it i sprawdzanie składni na bieżąco 411Nawigacja 412Wyszukiwanie 414Refaktoryzacja 415Uruchamianie w symulatorze 416Debugowanie 417Debugowanie techniką jaskiniowca 417Debugger Xcode 420Testowanie 426Test jednostkowy 428Testy interfejsu 430Czyszczenie 432Uruchamianie aplikacji w urządzeniu 433Uczestnictwo w płatnym programie dla programistów 433Podpisywanie aplikacji 434Podpisywanie automatyczne 435Podpisywanie ręczne 438Uruchomienie aplikacji 440Zarządzanie urządzeniami i certyfikatami programistycznymi 441Profilowanie 442Liczniki 442Usuwanie problemów związanych z pamięcią 442Aplikacja Instruments 444Lokalizacja 448Dystrybucja 452Utworzenie archiwum 452Certyfikat dystrybucyjny 453Profil dystrybucyjny 455Dystrybucja na potrzeby testów 455Przygotowywanie ostatecznej aplikacji 457Zrzuty ekranu i klip wideo 460Ustawienia property list 461Przekazanie aplikacji do sklepu App Store 462CZĘŚĆ III. COCOA10. Klasy Cocoa 467Podklasa 467Kategoria i rozszerzenie 470W jaki sposób Swift używa rozszerzeń? 470W jaki sposób programista używa rozszerzeń? 470W jaki sposób Cocoa używa kategorii? 471Protokół 472Protokół nieformalny 474Metoda opcjonalna 475Wybrane klasy frameworka Foundation 477NSRange i NSNotFound 478NSString i przyjaciele 480NSDate i przyjaciele 482NSNumber 484NSValue 486NSData 486NSMeasurement i przyjaciele 487Równość, wartość hash i porównywanie 488NSArray i NSMutableArray 490NSDictionary i NSMutableDictionary 492NSSet i przyjaciele 492NSIndexSet 493NSNull 494Niemodyfikowalne i modyfikowalne 494property list 495Protokół Codable 496Akcesory, właściwości i kodowanie klucz-wartość 499Akcesory Swifta 501Kodowanie klucz-wartość 502Używanie kodowania klucz-wartość 504KVC i outlet 505Ścieżka klucza w Cocoa 505Tajne życie obiektu NSObject 50611. Zdarzenia Cocoa 509Powód istnienia zdarzeń 509Tworzenie podklasy 510Powiadomienie 511Otrzymywanie powiadomienia 512Wyrejestrowanie obserwatora 514Publikowanie powiadomienia 516Licznik czasu 517Delegowanie 518Mechanizm delegowania w Cocoa 519Implementowanie mechanizmu delegowania 520Źródło danych 522Akcja 523Łańcuch respondera 525Przekazanie odpowiedzialności 526Akcja skierowana do nil 527Obserwacja klucz-wartość 528Rejestracja i powiadamianie 529Wyrejestrowanie obserwatora 529Przykład obserwacji klucz-wartość 530Zalew zdarzeń 532Opóźnione wykonanie operacji 53512. Zarządzanie pamięcią 537Zasady zarządzania pamięcią przez Cocoa 537Reguły zarządzania pamięcią w Cocoa 539Co to jest mechanizm ARC i na czym polega jego działanie? 540Jak Cocoa zarządza pamięcią obiektu? 540Automatycznie zwalniana pula 541Zarządzanie pamięcią właściwości egzemplarza 543Cykl przytrzymania i odwołanie słabe 544Nietypowe sytuacje związane z zarządzaniem pamięcią 546Obserwator powiadomień 546Obserwator KVO 547Licznik czasu 548Pozostałe nietypowe sytuacje 549Wczytywanie pliku nib i zarządzanie pamięcią 550Zarządzanie pamięcią obiektów CFTypeRef 551Polityka zarządzania pamięcią właściwości 552Debugowanie i błędy popełniane podczas zarządzania pamięcią 55513. Komunikacja między obiektami 557Widoczność poprzez utworzenie egzemplarza 558Widoczność według związku 560Widoczność globalna 561Powiadomienia i obserwacja klucz-wartość 562Architektura MVC 563DODATKIA. Języki C, Objective-C i Swift 569Skorowidz 601O autorze: Dr Matt Neuburg zaczął programować w 1968 roku jako czternastolatek. Swoją rozprawę doktorską o Ajschylosie napisał w 1981 r. z użyciem komputera typu mainframe na Uniwersytecie Cornell. Uczył języków klasycznych, literatury i kultury na kilku znakomitych uczelniach. W międzyczasie wciąż interesował się technologiami informatycznymi, a w 1990 roku przeszedł na platformę Macintosh. Opracował kilka bezpłatnych programów edukacyjnych i użytkowych, redagował serwis internetowy TidBITS oraz magazyn MacTech. Jest autorem kilku książek i szeregu artykułów branżowych.

hubert sobiecki wikipedia, fundusze unijne szkolenia bezpłatne 2019, oferty pracy stargard, język niemiecki od podstaw

yyyyy