Programowanie w języku Kotlin. The Big Nerd Ranch Guide

46.28

Opis

Gdy w 2017 roku na konferencji Google ogłoszono, że Kotlin jest jednym z oficjalnie wspieranych języków programowania aplikacji dla Androida, język ten błyskawicznie stał się popularny. Najpoważniejsze firmy technologiczne doceniają jego zalety, takie jak zwarta składnia i integracja z kodem Javy. Co ważne, twórcy Kotlina czerpali z doświadczeń projektantów Javy i zapewnili, że te dwa języki są ze sobą ściśle powiązane. W ten sposób świeżość rozwiązań i nowoczesne mechanizmy zostały znakomicie połączone z najlepszymi cechami Javy, a Kotlin stał się wszechstronnym wieloplatformowym językiem programowania.Ta książka jest przeznaczona dla programistów, którzy chcą poznać język o możliwościach wykraczających poza Javę i pisać solidne aplikacje dla różnych platform. Pozwala w praktyczny sposób zapoznać się z unikalnymi możliwościami Kotlina i – na podstawie licznych przykładowych projektów – stopniowo zgłębiać złożone zagadnienia. Znakomitym uzupełnieniem prezentowanych treści są informacje o wewnętrznych mechanizmach działania języka wraz z ćwiczeniami do samodzielnego wykonania. Dzięki tej książce nawet początkujący programista szybko zacznie pisać efektywne i solidne aplikacje, które będą służyć użytkownikom różnych platform.W tej książce między innymi:wprowadzenie do Kotlinafunkcje w Kotlinie, w tym funkcje anonimowepraca na obiektach: dziedziczenie, klasy, klasy abstrakcyjneprogramowanie funkcyjne w Kotlinienajciekawsze biblioteki i współdziałanie z JavąBig Nerd Ranch mieści się w Atlancie w USA. Firma została założona w 2001 roku przez Aarona Hillegassa, znakomitego programistę i trenera programowania. Jej misją jest krzewienie wiedzy o rozwijających się technologiach mobilnych. Słynie ze świetnych szkoleń i znakomitych trenerów.Kotlin: najlepsze rozwiązania nie tylko dla Androida!Spis treści:Podziękowania 13Przedstawienie Kotlina 15Dlaczego Kotlin? 15Dla kogo jest przeznaczona ta książka? 16Jak korzystać z tej książki? 16Dla ciekawskich 17Wyzwania 17Konwencje typograficzne 17Patrząc w przyszłość 171. Pierwsza aplikacja w Kotlinie 19Instalowanie IntelliJ IDEA 19Pierwszy projekt programu w Kotlinie 20Tworzenie pierwszego pliku źródłowego w Kotlinie 25Wykonywanie pliku źródłowego 27Kotlin REPL 29Dla ciekawskich: Dlaczego warto używać właśnie IntelliJ? 30Dla ciekawskich: Pisanie kodu przeznaczonego na JVM 31Wyzwanie: Arytmetyka REPL 322. Zmienne, stałe i typy 33Typy 33Deklarowanie zmiennych 34Wbudowane typy języka Kotlin 36Zmienne tylko do odczytu 37Wnioskowanie typów 40Stałe czasu kompilacji 41Oglądanie kodów bajtowych 42Dla ciekawskich: Podstawowe typy danych Javy w Kotlinie 45Wyzwanie: hasSteed 46Wyzwanie: Szynk Hipolita 46Wyzwanie: Magiczne lustro 463. Instrukcje warunkowe 47Instrukcje if/else 47Dodawanie kolejnych warunków 50Zagnieżdżone instrukcje if/else 52Bardziej eleganckie wyrażenia warunkowe 53Zakresy 59Wyrażenia when 60Szablony łańcuchowe 62Wyzwanie: Eksperymenty z zakresami 64Wyzwanie: Rozbudowa aury 64Wyzwanie: Konfigurowalny format statusu 654. Funkcje 67Wyodrębnianie kodu do funkcji 67Anatomia funkcji 69Nagłówek funkcji 70Ciało funkcji 72Zasięg funkcji 73Wywoływanie funkcji 74Refaktoryzacja funkcji 75Pisanie własnych funkcji 76Argumenty domyślne 78Funkcje jednowyrażeniowe 79Funkcje typu Unit 80Nazwane argumenty funkcji 81Dla ciekawskich: Typ Nothing 82Dla ciekawskich: Funkcje plikowe w Javie 83Dla ciekawskich: Przeciążanie funkcji 84Dla ciekawskich: Nazwy funkcji w odwrotnych apostrofach 85Wyzwanie: Funkcje jednowyrażeniowe 87Wyzwanie: Poziom upojenia magicznego 87Wyzwanie: Status upojenia magicznego 875. Funkcje anonimowe i typ funkcyjny 89Funkcje anonimowe 89Typ funkcyjny 91Niejawne instrukcje return 92Argumenty funkcyjne 92Słowo kluczowe it 93Akceptowanie wielu argumentów 94Wsparcie dla wnioskowania typów 95Definiowanie funkcji akceptujących inne funkcje 96Składnia skrócona 97Wpisywanie funkcji 98Referencje funkcji 99Typ funkcyjny jako typ wyniku 100Dla ciekawskich: Funkcje lambda w Kotlinie są domknięciami 102Dla ciekawskich: Funkcje lambda a anonimowe klasy wewnętrzne 1026. Bezpieczeństwo wartości pustych i wyjątki 105Akceptowanie wartości pustych 105Jawny typ null w Kotlinie 107W czasie kompilacji czy w czasie wykonywania? 108Bezpieczeństwo wartości pustych 109Opcja pierwsza: bezpieczny operator wywołania 110Opcja druga: operator podwójnego wykrzyknika 111Opcja trzecia: użycie if do sprawdzania, czy wartość jest równa null 112Wyjątki 115Zgłaszanie wyjątków 116Niestandardowe wyjątki 117Obsługa wyjątków 118Warunki wstępne 120Null: do czego się przydaje? 122Dla ciekawskich: Wyjątki sprawdzane i niesprawdzane 123Dla ciekawskich: Jak wymuszana jest możliwość stosowania wartości null? 1237. Łańcuchy 125Pobieranie fragmentów łańcuchów 125Funkcja substring 125Funkcja split 127Operacje na łańcuchach 129Łańcuchy są niezmienne 131Porównywanie łańcuchów 131Dla ciekawskich: Unicode 133Dla ciekawskich: Przeglądanie znaków w łańcuchu 133Wyzwanie: Usprawnianie smoczej mowy 1348. Liczby 135Typy liczbowe 135Liczby całkowite 136Liczby dziesiętne 138Konwersja łańcuchów na typy liczbowe 138Konwersja typu Int na Double 139Formatowanie wartości typu Double 141Konwertowanie wartości typu Double na Int 142Dla ciekawskich: Operacje bitowe 143Wyzwanie: Pozostałe kwaterki 144Wyzwanie: Obsługa ujemnego stanu sakiewki 144Wyzwanie: Smoczykojn 1459. Funkcje standardowe 147Funkcja apply 147Funkcja let 148Funkcja run 149Funkcja with 150Funkcja also 151Funkcja takeIf 151Funkcja takeUnless 152Stosowanie funkcji standardowych 15210. Listy i zbiory 155Listy 155Dostęp do elementów listy 157Zmienianie zawartości listy 159Iteracja 163Wczytywanie pliku do listy 167Destrukturyzacja 169Zbiory 169Tworzenie zbiorów 169Dodawanie elementów do zbioru 171Pętle while 173Wyrażenie break 175Konwersje kolekcji 175Dla ciekawskich: Typy tablicowe 176Dla ciekawskich: Tylko do odczytu a niezmienny 177Wyzwanie: Formatowanie menu gospody 178Wyzwanie: Zaawansowane formatowanie menu 17911. Mapy 181Tworzenie map 181Dostęp do wartości mapy 183Dodawanie elementów do map 183Modyfikowanie wartości mapy 186Wyzwanie: Wykidajło 19012. Definiowanie klas 191Definiowanie klasy 191Tworzenie instancji 191Funkcje klasowe 192Widoczność i hermetyzacja 194Właściwości klas 195Akcesory get i set i ich właściwości 197Widoczność właściwości 200Właściwości obliczane 200Refaktoryzacja kodu projektu NyetHack 201Stosowanie pakietów 209Dla ciekawskich: Bliższe spojrzenie na właściwości var i val 210Dla ciekawskich: Zapobieganie występowaniu wyścigu 213Dla ciekawskich: prywatny w pakiecie 21413. Inicjalizacja 217Konstruktory 218Konstruktory podstawowe 218Definiowanie właściwości w konstruktorze podstawowym 219Konstruktory dodatkowe 220Argumenty domyślne 221Argumenty nazwane 222Blok inicjalizatora 223Inicjalizacja właściwości 224Kolejność inicjalizacji 227Odraczanie inicjalizacji 228Inicjalizacja opóźniona 228Inicjalizacja leniwa 229Dla ciekawskich: Kruczki inicjalizacji 231Wyzwanie: Zagadka Excalibura 23314. Dziedziczenie 235Definiowanie klasy Room 235Tworzenie klas pochodnych 236Sprawdzanie typów 242Hierarchia typów w języku Kotlin 244Rzutowanie typów 245Inteligentne rzutowanie 246Dla ciekawskich: Klasa Any 24715. Obiekty 249Słowo kluczowe object 249Deklaracje obiektów 250Wyrażenie obiektowe 255Obiekty uzupełniające 255Klasy zagnieżdżone 256Klasy danych 259Funkcja toString 260Funkcja equals 261Funkcja copy 261Deklaracje destrukturyzujące 261Klasy wyliczeniowe 263Przeciążanie operatorów 264Eksplorowanie świata NyetHack 266Dla ciekawskich: Definiowanie porównań strukturalnych 269Dla ciekawskich: Algebraiczne typy danych 271Wyzwanie: Polecenie „Wyjdź” 273Wyzwanie: Implementacja mapy świata 274Wyzwanie: Dzwonimy 27416. Interfejsy i klasy abstrakcyjne 275Definiowanie interfejsów 275Implementacja interfejsu 276Domyślne implementacje 279Klasy abstrakcyjne 279Walka w świecie NyetHack 28217. Typy sparametryzowane 287Definiowanie typów sparametryzowanych 287Funkcje sparametryzowane 289Wiele parametrów typów sparametryzowanych 290Ograniczenia typów sparametryzowanych 291vararg i get 293in i out 295Dla ciekawskich: Słowo kluczowe reified 29918. Rozszerzenia 303Definiowanie funkcji rozszerzenia 303Definiowanie rozszerzenia dla klasy bazowej 304Sparametryzowane funkcje rozszerzeń 305Właściwości rozszerzające 307Rozszerzenia dla typów akceptujących wartości puste 308Funkcje rozszerzeń – za kulisami 309Wyodrębnianie kodu do rozszerzeń 310Definiowanie plików rozszerzeń 311Zmiana nazwy rozszerzenia 313Rozszerzenia w standardowej bibliotece Kotlina 314Dla ciekawskich: Literały funkcyjne z odbiorcami 315Wyzwanie: Funkcja rozszerzenia toDragonSpeak 316Wyzwanie: Funkcja rozszerzenia frame 31619. Podstawy programowania funkcyjnego 319Kategorie funkcji 319Przekształcenia 319Filtry 321Złączenia 323Dlaczego programowanie funkcyjne? 324Sekwencje 325Dla ciekawskich: Profilowanie 326Dla ciekawskich: Arrow.kt 327Wyzwanie: Odwracanie wartości w mapie 328Wyzwanie: Zastosowanie programowania funkcyjnego w pliku Tavern.kt 328Wyzwanie: Ruchome okno 32920. Współdziałanie z Javą 331Współdziałanie z klasami Javy 331Współdziałanie a stosowanie wartości pustych 332Odwzorowywanie typów 335Akcesory get, set i współdziałanie 337Więcej niż tylko klasy 339Wyjątki a współdziałanie 347Typy funkcyjne w Javie 35021. Tworzenie w Kotlinie pierwszej aplikacji na Androida 353Android Studio 353Konfiguracja Gradle 356Organizacja projektu 359Definiowanie interfejsu użytkownika 359Uruchamianie aplikacji w emulatorze 362Generowanie postaci 363Klasa aktywności 365Podłączanie widoków 366Syntetyczne właściwości rozszerzeń Kotlina dla Androida 368Tworzenie obiektu nasłuchującego kliknięć 370Zapisany stan instancji 371Odczyt zapisanego stanu instancji 374Refaktoryzacja do postaci rozszerzeń 374Dla ciekawskich: Biblioteki Kotlin KTX i Anko 37722. Wprowadzenie do Kotlin Coroutines 379Parsowanie danych postaci 379Pobieranie rzeczywistych danych 381Główny wątek aplikacji na Androida 384Włączanie koprocedur 385Tworzenie koprocedur przy użyciu funkcji async 385Funkcje launch a async i await 387Funkcje zawieszające 387Wyzwanie: Rzeczywiste dane 388Wyzwanie: Minimalna siła 38823. Posłowie 389Co dalej? 389Bezwstydna reklama 389Dziękujemy! 390A. Więcej wyzwań 393Korzystanie z Exercism 393Skorowidz 401

Informatyka

wypadek katowice filmik youtube, ile kosztują tabletki poronne, darmowe programy do faktur, reprezentacja w spółce jawnej, wykoleił się pociąg, duńskie firmy w polsce, lidl zupki chińskie, odestki ustawowe, pit podatki, monika matusiak, bateria miszczyka, jan błoński polski reżyser, kazakhstan, fundamenty pod garaż

yyyyy