Tiefpreis
CHF59.20
Auslieferung erfolgt in der Regel innert 2 bis 4 Werktagen.
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
»Das umfassende Handbuch zu Kotlin richtet sich an Leser, die bereits über Grundlagenkenntnisse in der Programmierung verfügen und sich im Selbststudium leicht in neue Programmiersprachen einarbeiten können.«
Autorentext
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.
Inhalt
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 ins…