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

Gebundene Ausgabe
49,90 €
inkl. MwSt. versandkostenfrei!

Produktdetails  
Verlag Rheinwerk Verlag
Auflage 28.10.2020
Seiten 824
Format 17,9 x 5,2 x 24,3 cm
Gewicht 1630 g
ISBN-10 3836272776
ISBN-13 9783836272773
Bestell-Nr 83627277A

Produktbeschreibung  

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


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 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

Autorenporträt  
Mehr Angebote zum Thema