Bültmann & Gerriets
Kotlin
Das umfassende Handbuch. Über 800 Seiten Kotlin-Wissen mit zahlreichen Beispielen aus der Entwicklerpraxis
von Michael Kofler
Verlag: Rheinwerk Verlag GmbH
Reihe: Rheinwerk Computing
Gebundene Ausgabe
ISBN: 978-3-8362-7277-3
Erschienen am 28.10.2020
Sprache: Deutsch
Format: 238 mm [H] x 182 mm [B] x 52 mm [T]
Gewicht: 1620 Gramm
Umfang: 823 Seiten

Preis: 49,90 €
keine Versandkosten (Inland)


Jetzt bestellen und schon ab dem 01. Oktober in der Buchhandlung abholen

Der Versand innerhalb der Stadt erfolgt in Regel am gleichen Tag.
Der Versand nach außerhalb dauert mit Post/DHL meistens 1-2 Tage.

49,90 €
merken
zum E-Book (EPUB) 49,90 €
klimaneutral
Der Verlag produziert nach eigener Angabe noch nicht klimaneutral bzw. kompensiert die CO2-Emissionen aus der Produktion nicht. Daher übernehmen wir diese Kompensation durch finanzielle Förderung entsprechender Projekte. Mehr Details finden Sie in unserer Klimabilanz.
Biografische Anmerkung
Inhaltsverzeichnis
Klappentext

Dr. Michael Kofler studierte Telematik an der TU Graz. Er zählt zu den erfolgreichsten und vielseitigsten Computerbuchautoren im deutschen Sprachraum. Zu seinen Themengebieten zählen neben Linux auch macOS, MySQL, KVM, Visual Basic und Excel-VBA. Viele seiner Bücher wurden übersetzt. Michael Kofler arbeitet auch als Software-Entwickler, Berater sowie als Lehrbeauftragter an einer Fachhochschule.




  Vorwort ... 13
TEIL I  Kotlin ... 17
  1.  Hello World! ... 19
       1.1 ... Über Kotlin ... 19
       1.2 ... Installation ... 21
       1.3 ... 'Hello World!' mit und ohne IDE ausführen ... 24
  2.  Crashkurs ... 29
       2.1 ... Elementare Syntaxregeln ... 29
       2.2 ... Konventionen ... 41
       2.3 ... Von Java zu Kotlin ... 42
  3.  Operatoren ... 47
       3.1 ... Übersicht ... 47
       3.2 ... Anmerkungen ... 49
       3.3 ... Priorität von Operatoren ... 59
  4.  Variablenverwaltung ... 61
       4.1 ... Variablen ... 61
       4.2 ... Unveränderliche Variablen ... 63
       4.3 ... Konstanten und Enumerationen ... 64
       4.4 ... Der Umgang mit 'null' ... 65
  5.  Datentypen ... 69
       5.1 ... Die wichtigsten Kotlin-Datentypen ... 69
       5.2 ... Zahlen ... 72
       5.3 ... Bereiche (Ranges) ... 74
       5.4 ... Zufallszahlen ... 76
       5.5 ... Boolesche Ausdrücke ... 77
  6.  Zeichenketten ... 79
       6.1 ... Die Klasse 'Char' ... 80
       6.2 ... Die Klasse 'String' ... 82
       6.3 ... Mit Zeichenketten arbeiten ... 85
       6.4 ... Beispiel: Passwortqualität testen ... 94
       6.5 ... Die Klasse 'StringBuilder' ... 97
  7.  Datum und Uhrzeit ... 99
       7.1 ... Neue Java-Klassen ('java.time') ... 100
       7.2 ... Herkömmliche Java-Klassen ('Date' und 'Calendar') ... 107
       7.3 ... Die 'Duration and Time Measurement API' (kotlin.time) ... 113
  8.  Listen, Sets, Maps und Arrays ... 117
       8.1 ... Listen ... 118
       8.2 ... Sets ... 132
       8.3 ... Maps ... 135
       8.4 ... Sequenzen ... 136
       8.5 ... Arrays ... 140
  9.  Verzweigungen und Schleifen ... 147
       9.1 ... Die 'if'-Verzweigung ... 147
       9.2 ... Die 'when'-Verzweigung ... 150
       9.3 ... Die 'for'-Schleife ... 152
       9.4 ... Die 'while'-Schleife ... 154
       9.5 ... Die 'repeat'-Schleife ... 155
       9.6 ... 'break' und 'continue' ... 156
       9.7 ... Beispiele: Summen, Produkte, Duplikate und Co. ... 157
10.  Funktionen ... 163
       10.1 ... Funktionen definieren und aufrufen ... 164
       10.2 ... Parameter ... 168
       10.3 ... Rekursion ... 172
       10.4 ... Lokale Funktionen ... 175
       10.5 ... Die 'main'-Funktion ... 176
       10.6 ... Beispiel: Pfadsuche ... 177
11.  Lambda-Ausdrücke und funktionale Programmierung ... 189
       11.1 ... Hello Lambda! ... 190
       11.2 ... Lambda-Ausdrücke und Funktionen für Fortgeschrittene ... 192
       11.3 ... Beispiel: Funktionen erzeugen und verarbeiten ... 197
       11.4 ... 'map', 'filter', 'reduce' und Co. ... 199
       11.5 ... Beispiel: Textanalyse mit Lambda-Ausdrücken ... 211
       11.6 ... Beispiel: Dosenpyramide in drei Farben ... 213
       11.7 ... Objekte verarbeiten ('apply', 'let', 'with' etc.) ... 218
       11.8 ... Inline-Funktionen ... 223
12.  Klassen und Objekte ... 227
       12.1 ... Klassen ... 227
       12.2 ... Der Konstruktor ... 233
       12.3 ... Eigenschaften ... 240
       12.4 ... Eigenschaften später initialisieren ... 245
       12.5 ... Zugriffssteuerung ... 249
       12.6 ... Beispiel: Bankkonto ... 251
       12.7 ... Objekte ohne Klassen ... 253
       12.8 ... Beispiel: Quiz ... 261
       12.9 ... Enumerationen ... 266
13.  Vererbung, Schnittstellen, Extensions ... 271
       13.1 ... Vererbung ... 272
       13.2 ... Vererbung (Konstruktoren, abstrakte Klassen, Polymorphie) ... 278
       13.3 ... Die Klasse 'Any' ... 284
       13.4 ... Datenklassen ... 287
       13.5 ... Beispiel: Schachfiguren ... 289
       13.6 ... Schnittstellen ... 296
       13.7 ... Beispiel: Geometrische Objekte mit Schnittstellen verarbeiten ... 303
       13.8 ... Extensions ... 304
       13.9 ... Receiver-Funktionen ... 309
       13.10 ... Infix-Funktionen ... 312
       13.11 ... Operator Overloading ... 313
       13.12 ... Beispiel: Rechnen mit komplexen Zahlen ... 316
       13.13 ... Delegation ... 317
14.  Reflection, Generics und Annotationen ... 327
       14.1 ... Reflection ... 328
       14.2 ... Generics ... 330
       14.3 ... Generische Typen: Zusatzregeln und Sonderfälle ... 333
       14.4 ... Annotationen ... 344
       14.5 ... Type-safe Builder ... 348
15.  Exceptions ... 357
       15.1 ... Fehlerabsicherung ... 358
       15.2 ... Selbst Fehler auslösen ('throw') ... 365
       15.3 ... Arbeitstechniken ... 367
16.  Pakete, Importe und Module ... 369
       16.1 ... Pakete ... 369
       16.2 ... Importe ... 370
       16.3 ... Module ... 373
TEIL II  Programmiertechniken ... 375
17.  Asynchrone Programmierung ... 377
       17.1 ... Hello Coroutines! ... 378
       17.2 ... Koroutinen ausführen ... 382
       17.3 ... Koroutinen abbrechen ... 390
       17.4 ... Exceptions in asynchronem Code ... 395
       17.5 ... Den Zugriff auf gemeinsame Daten synchronisieren ... 398
       17.6 ... Suspending Functions ... 401
       17.7 ... Asynchroner Code in Android-Apps ... 404
       17.8 ... Beispiel: Effizient numerisch integrieren ... 407
18.  Dateien verarbeiten (I/O, JSON, XML) ... 411
       18.1 ... Umgang mit Dateien und Verzeichnissen ... 412
       18.2 ... Textdateien lesen und schreiben ... 419
       18.3 ... Download von Dateien ... 422
       18.4 ... JSON und Serialisierung ... 422
       18.5 ... JSON-Beispiel: Die 'New-York-Times'-Bestseller ... 430
       18.6 ... XML ... 432
19.  Datenbankzugriff (Exposed) ... 437
       19.1 ... Hello Exposed! ... 438
       19.2 ... Verbindungsaufbau und Transaktionen ... 442
       19.3 ... Data Access Objects (DAO) ... 448
       19.4 ... DAO-Beispiel: Bücherdatenbank ... 455
       19.5 ... SQL als Domain-specific Language (DSL) ... 462
20.  JavaFX ... 473
       20.1 ... Hello JavaFX! ... 473
       20.2 ... TornadoFX ... 477
TEIL III  App-Entwicklung ... 481
21.  Hello Android! ... 483
       21.1 ... Android Studio installieren ... 484
       21.2 ... Das erste Projekt in Android Studio ... 486
       21.3 ... Emulator einrichten ... 488
       21.4 ... Smartphone einrichten ... 492
       21.5 ... Aufbau eines Android-Studio-Projekts ... 494
       21.6 ... Eigener Button, eigener Code ... 498
       21.7 ... Personalisierung der App ... 505
22.  App: Fahrenheit-Umrechner ... 509
       22.1 ... Layout ... 510
       22.2 ... Der Code zur Temperaturumrechnung ... 512
       22.3 ... Debugging ... 518
       22.4 ... Screenshots ... 522
23.  Android Basics ... 525
       23.1 ... Android-Grundlagen ... 525
       23.2 ... Steuerelemente ... 527
       23.3 ... Texte anzeigen und eingeben ('TextView', 'EditText') ... 529
       23.4 ... Buttons ... 533
       23.5 ... ImageView ... 535
       23.6 ... Layoutregeln ... 541
       23.7 ... Listen und Tabellen ('RecyclerView') ... 548
       23.8 ... Preferences ... 561
       23.9 ... Permissions ... 564
24.  Aktivitäten, Fragmente und Menüs ... 573
       24.1 ... Aktivitäten und Fragmente ... 574
       24.2 ... Beispiel: App mit drei leeren Fragmenten ... 576
       24.3 ... Datenaustausch zwischen Fragmenten ... 586
       24.4 ... Beispiel: Datenaustausch zwischen drei Fragmenten ... 593
       24.5 ... Einfache Menüs (Overflow Menu) ... 597
25.  App: Währungsumrechner ... 603
       25.1 ... Die Klasse 'CurrencyCalculator' ... 604
       25.2 ... Hauptaktivität ... 610
       25.3 ... Fragment zur Währungsumrechnung ('MainFragment') ... 611
       25.4 ... Einstellungsfragment ('SetupFragment') ... 616
       25.5 ... Fragment mit App-Informationen ('AboutFragment') ... 620
26.  Jetpack Compose ... 623
       26.1 ... Hello Compose! ... 625
       26.2 ... Steuerelemente ... 635
       26.3 ... Container ... 641
       26.4 ... Listen ... 645
       26.5 ... Theming ... 648
       26.6 ... Aktivitäten und Fragmente ... 651
       26.7 ... Beispiel: Fahrenheit-Umrechner ... 656
TEIL IV  Backend und Server ... 661
27.  Hello Server! ... 663
       27.1 ... Hello Ktor! ... 665
       27.2 ... Beispiel: URL-Verkürzer ... 670
       27.3 ... Beispiel: URL-Verkürzer mit Datenbank-Server ... 675
28.  Ktor-Programmiertechniken ... 681
       28.1 ... Projekt- und Programmaufbau ... 682
       28.2 ... Routing ... 684
       28.3 ... Request und Response ... 690
       28.4 ... HTML- und CSS-Dokumente zusammensetzen ... 694
       28.5 ... REST-APIs ... 701
       28.6 ... Authentifizierung ... 709
       28.7 ... Ktor-Debugging ... 715
29.  App: Evaluierungssystem (Backend) ... 719
       29.1 ... Projektaufbau ... 720
       29.2 ... Datenbankdesign ... 723
       29.3 ... Der Datenbank-Code ... 725
       29.4 ... Weboberfläche ... 735
       29.5 ... Die REST-API ... 745
30.  App: Evaluierungssystem (Client) ... 753
       30.1 ... Den Ktor-Client in Android-Apps verwenden ... 755
       30.2 ... Ktor-Client-Programmiertechniken ... 758
       30.3 ... Projektaufbau der Evaluierungs-App ... 761
       30.4 ... Liste der Evaluierungen anzeigen ... 766
       30.5 ... Einmal-Login ... 772
       30.6 ... Evaluierung durchführen ... 775
       30.7 ... Evaluierungsergebnisse anzeigen ... 781
  A.  IntelliJ, Android Studio und Gradle ... 783
       A.1 ... IntelliJ und Android Studio ... 783
       A.2 ... Gradle ... 795
  Index ... 807



Kotlin ist das neue Schweizer Taschenmesser in der Softwareentwicklung. Ob mobile Apps oder Geschäftslogik am Backend, ob objektorientierte Paradigmen oder funktionale Programmierung mit Lambdas: Kotlin vereint die Stärken zahlreicher beliebter Sprachen zu einem modern Werkzeug für alle Fälle. In diesem umfassenden Handbuch gibt Michael Kofler Ihnen dazu einen Einblick in alle Sprachfeatures und zeigt Ihnen, wie Sie zeitgemäß Software entwicklen.


Aus dem Inhalt:


  • Crashkurs für Java-Umsteiger

  • IDEs: IntelliJ und Android Studio

  • Operatoren, Datentypen, Variablen, Klassen, Methoden: Alle Grundlagen

  • Lambda-Ausdrücke und funktionale Programmierung

  • Objektorientierte Programmierung inkl. Extensions, Delegation und Generics

  • Asynrchrone Programmierung und Koroutinen

  • Netzwerkfunktionen, XML und JSON

  • App-Programmierung mit Jetpack und Jetpack Compose

  • Backend-Entwicklung mit Ktor und Exposed

  • REST-APIs entwicklen und anwenden

  • Pakete, Module und Importe



andere Formate
weitere Titel der Reihe