Bücher versandkostenfrei*100 Tage RückgaberechtAbholung in der Wunschfiliale
Bis zu 80% und mehr sparen: Die besten Preishits für Sie ausgewählt
Jetzt sparen
mehr erfahren
product
cover

Kotlin

Das umfassende Handbuch. Über 800 Seiten Kotlin-Wissen mit zahlreichen Beispielen aus der Entwicklerpraxis

(0 Bewertungen)15
499 Lesepunkte
Buch (gebunden)
Buch (gebunden)
49,90 €inkl. Mwst.
Zustellung: Mi, 04.06. - Fr, 06.06.
Sofort lieferbar
Versandkostenfrei
Bestellen & in Filiale abholen:
Empfehlen

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

Inhaltsverzeichnis



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

Produktdetails

Erscheinungsdatum
28. Oktober 2020
Sprache
deutsch
Seitenanzahl
823
Reihe
Rheinwerk Computing
Autor/Autorin
Michael Kofler
Verlag/Hersteller
Produktart
gebunden
Gewicht
1620 g
Größe (L/B/H)
238/182/52 mm
ISBN
9783836272773

Portrait

Michael Kofler

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.

Pressestimmen

»Michael Kofler hat einen exzellenten Ruf für seine Bücher zu diversen Themen. Da macht auch sein Buch Kotlin: Das umfassende Handbuch keine Ausnahme. [. . .] Insgesamt eignet sich das Buch für alle erfahrenen Programmierer, egal wie viel oder wie wenig Erfahrung sie mit Kotlin bereits sammeln konnten. «

»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. «

Bewertungen

0 Bewertungen

Es wurden noch keine Bewertungen abgegeben. Schreiben Sie die erste Bewertung zu "Kotlin" und helfen Sie damit anderen bei der Kaufentscheidung.

Michael Kofler: Kotlin bei hugendubel.de. Online bestellen oder in der Filiale abholen.