Kofler | Kotlin | Buch | 978-3-8362-7277-3 | sack.de

Buch, Deutsch, 823 Seiten, Format (B × H): 182 mm x 238 mm, Gewicht: 1620 g

Reihe: Rheinwerk computing

Kofler

Kotlin

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

Buch, Deutsch, 823 Seiten, Format (B × H): 182 mm x 238 mm, Gewicht: 1620 g

Reihe: Rheinwerk computing

ISBN: 978-3-8362-7277-3
Verlag: Rheinwerk Verlag GmbH


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
Kofler Kotlin jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


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


Kofler, Michael
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.


Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.