Kotlin

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

Michael Kofler

Buch (gebundene Ausgabe)
Buch (gebundene Ausgabe)
49,90
49,90
inkl. gesetzl. MwSt.
inkl. gesetzl. MwSt.
Sofort lieferbar Versandkostenfrei
Sofort lieferbar
Versandkostenfrei

Weitere Formate

gebundene Ausgabe

49,90 €

Accordion öffnen
  • Kotlin

    Rheinwerk

    Sofort lieferbar

    49,90 €

    Rheinwerk

eBook (ePUB)

44,90 €

Accordion öffnen

Beschreibung

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

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.

Produktdetails

Einband gebundene Ausgabe
Seitenzahl 824
Erscheinungsdatum 23.10.2020
Sprache Deutsch
ISBN 978-3-8362-7277-3
Reihe Rheinwerk Computing
Verlag Rheinwerk
Maße (L/B/H) 23,8/18,2/5,2 cm
Gewicht 1630 g
Auflage 1
Verkaufsrang 12673

Kundenbewertungen

Es wurden noch keine Bewertungen geschrieben.

  • Artikelbild-0


  •   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