
Kotlin
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
- Fundierte Einführung mit zahlreichen Beispielen aus der Praxis
- Kotlin für Android- und Webanwendungen
- Mit vielen Tipps für Java-Umsteiger
Kotlin ist eine Programmiersprache, die sich in den letzten Jahren von einem reinen Java-Ersatz für Android zu einer vollwertigen Cross-Plattform-Sprache entwickelt hat.
Dieses Buch richtet sich an Entwickler, die Kotlin als neue Programmiersprache kennenlernen und in einer Java-Umgebung wie Android einsetzen wollen, oder die sich für Multiplattform-Techniken interessieren. Dabei konzentriert sich der Autor auf die Grundlagen der Sprache und erläutert umfassend ihre Strukturen, Befehle und Sprachfeatures.
Anhand zahlreicher Beispiele lernen Sie, wie Sie Kotlin in einer Produktivumgebung effektiv einsetzen können. Da Kotlin funktionale Programmierung ermöglicht und sich an diesem Konzept orientiert, erläutert der Autor außerdem, was Sie wissen müssen, um funktionalen und objektorientierten Stil zu kombinieren.
Darüber hinaus erhalten Sie einen Ausblick auf weiterführende Themen und Konzepte wie automatische Tests, die Organisation von größeren Projekten durch Architekturmuster und die Nebenläufigkeit mit Kotlin-Coroutines.
Auch die Anwendung von Kotlin für Android wird vorgestellt und gezeigt, wie die neue Sprache konkret hilft, moderne Architekturen umzusetzen.
Zum Abschluss geht der Autor auf die Entwicklung von Cross-Plattform- sowie JavaScript-Anwendungen mit Kotlin ein.
Mit diesem Buch erhalten Sie einen umfassenden Einstieg in Kotlin. Es enthält viele Informationen für Entwickler, die sich das erste Mal mit einer statisch typisierten Sprache beschäftigen und für diejenigen, die von der Android-Entwicklung mit Java kommen und auf Kotlin umsteigen und bisherigen Code ergänzen oder ersetzen wollen.
More details
Other editions
Additional editions

Person
Content
- Cover
- Titel
- Impressum
- Inhaltsverzeichnis
- Einleitung
- Kapitel 1: Eigenschaften von Kotlin
- 1.1 Eine neue Sprache
- 1.2 Kotlin und Android
- 1.3 Vorteile von Kotlin
- 1.4 Ziele der Entwicklung von Kotlin
- 1.4.1 Übersichtlichkeit, präziser Ausdruck
- 1.4.2 Sicherheit
- 1.4.3 Interoperabilität
- Kapitel 2: Arbeiten mit Kotlin
- 2.1 Entwicklungsumgebung einrichten
- 2.1.1 IntelliJ
- 2.1.2 Android Studio
- 2.2 Tools
- 2.2.1 Kotlin-Compiler
- 2.2.2 Kotlin-Compiler mit Gradle
- 2.2.3 Integrierte Entwicklungsumgebungen/IDE
- 2.2.4 Konvertierung von existierendem Code
- Kapitel 3: Kotlin by example
- 3.1 Hello world!
- 3.2 Hello null!
- 3.2.1 Ein erster Test
- 3.2.2 Eine erste Exception
- 3.2.3 Eine erste Variable - Null-Sicherheit
- 3.2.4 Let und Lambdas
- 3.2.5 Eine erste Schleife
- 3.3 Hello Android!
- 3.4 Hello Kotlin!
- Kapitel 4: Grundlagen und Daten
- 4.1 Expressions vs. Statements
- 4.2 Strukturierung von Code durch Dateien, Klassen, Funktionen und Blöcke
- 4.3 Funktionen
- 4.3.1 Direkte Funktionsaufrufe
- 4.3.2 Benutzung von Lambdas
- 4.4 Variablen
- 4.4.1 Deklaration: Immutable vs. Mutable, Zuweisung
- 4.4.2 Typen und Typsicherheit
- 4.4.3 Null-Sicherheit
- 4.4.4 Typinferenz
- 4.4.5 Generics benutzen
- 4.4.6 Boxing
- 4.5 Besonderheiten der Datentypen
- 4.5.1 Zahlen
- 4.5.2 Boolean
- 4.5.3 Chars und Strings - Zeichen und Zeichenketten
- 4.5.4 Objekte und Any
- 4.5.5 Arrays und Listen
- 4.5.6 Maps
- 4.5.7 Ranges
- Kapitel 5: Grundstrukturen
- 5.1 Kontrollstrukturen
- 5.2 Verzweigungen mit if
- 5.3 Verzweigung mit when
- 5.4 Schleifen mit for und while
- 5.4.1 for-Schleifen
- 5.4.2 while-Schleifen
- 5.4.3 repeat
- 5.4.4 break/named break und continue
- 5.4.5 Funktionsbasierte Alternativen
- 5.5 Exception Handling mit try/catch
- 5.6 Annotations
- 5.7 Datentypen
- 5.7.1 Type-Casting
- 5.7.2 Type-Casting und null
- 5.7.3 Smart Casts
- 5.7.4 Type Aliases
- Kapitel 6: Funktionen und Lambdas
- 6.1 Funktionale Entwicklung
- 6.2 Syntax von Funktionen
- 6.2.1 Kurzformen von Funktionsdefinitionen
- 6.2.2 Parameter
- 6.2.3 Variable Anzahl von Parametern
- 6.2.4 Rückgabe
- 6.2.5 Destrukturierende Deklarationen
- 6.2.6 Kombination mehrerer Funktionsaufrufe
- 6.3 Höhere Funktion und Lambdas
- 6.3.1 Funktionen als Parameter
- 6.3.2 Funktionstyp für Variablen
- 6.4 Chaining von Lambdas
- 6.5 Rekursive Funktionen
- 6.6 Spezielle Funktionen
- 6.6.1 Lokale Funktionen
- 6.6.2 Inline-Funktionen
- 6.6.3 Infix-Funktionen
- 6.6.4 Actual-Funktionen
- 6.6.5 Überladene Operatoren
- Kapitel 7: Packages, Klassen und Objekte
- 7.1 Architektur und Entwurf
- 7.2 Packages, Klassen und Interfaces
- 7.2.1 Klassen und Interfaces organisieren das Modell
- 7.2.2 Klassen und Interfaces, Vererbung
- 7.2.3 Packages organisieren das Projekt
- 7.2.4 Sichtbarkeitsmodifier
- 7.2.5 Import
- 7.3 Von der Klasse zum Objekt - Meet the members
- 7.3.1 Konstruktoren und Initializer
- 7.3.2 Properties
- 7.3.3 Custom Getter/Setter
- 7.3.4 Methoden
- 7.3.5 Innere Klassen
- 7.3.6 Companion Objects
- 7.4 Objekt-Anweisungen
- 7.4.1 Singletons via Objekt-Deklaration
- 7.4.2 Anonyme Klassen via Objekt-Ausdruck
- 7.4.3 Object-Statements bei Rückgaben
- 7.5 Datenklassen
- 7.6 Generics
- 7.6.1 Generische Klassen
- 7.6.2 Beschränkung der Typen: Invariant, Kovariant, Kontravariant
- 7.6.3 Generische Methoden
- 7.6.4 Reified parameters
- 7.7 Enum classes
- 7.8 Sealed classes
- 7.9 Extensions
- 7.10 Destrukturierende Deklarationen
- Kapitel 8: Testing
- 8.1 Einführung
- 8.1.1 Unit-Tests
- 8.1.2 Integrationstests
- 8.1.3 Testsuite
- 8.1.4 Mocking und Dependency Injection
- 8.1.5 Konkret: Wie werden Tests geschrieben?
- 8.2 Erster JUnit-Test
- 8.3 Einrichten eines Testprojekts
- 8.4 Praxisbeispiel: Verkleinern von Funktionen
- 8.5 Das Testresultat lesen
- 8.6 Der Test von Hello world!
- 8.7 Test einer Klasse
- 8.8 Parametrisierte Tests
- 8.9 Testing Kotlin-Style
- 8.9.1 Testkomponenten
- 8.9.2 Spek
- 8.9.3 Kotlintest.io
- 8.9.4 kotlin.test: Unit-Tests in Multiplattform-Projekten
- Kapitel 9: Kotlin für Fortgeschrittene
- 9.1 Alles zusammenbringen
- 9.2 Zielplattformen
- 9.3 Kotlin-Standard
- 9.3.1 run, let, apply, with, also
- 9.3.2 Takeif/Takeunless
- 9.3.3 Collections, Arrays und Listen
- 9.3.4 Operationen auf allen iterierbaren Elementen
- 9.3.5 Texttools
- 9.3.6 Reflection
- 9.4 Delegation
- 9.4.1 Property Delegation
- 9.4.2 Class Delegation
- 9.5 Service Location/Dependency Injection
- 9.5.1 Warum eigentlich?
- 9.5.2 Service Locator
- 9.5.3 Dependency Injection
- 9.6 Coroutines und Nebenläufigkeit
- 9.6.1 Launch und Scopes
- 9.6.2 Async, Await und Deferred
- 9.6.3 Producer, Consumer und Actor
- 9.7 Contracts
- 9.8 Idiomatischer Code
- 9.8.1 Unveränderliche/immutable Variablen
- 9.8.2 Kurzformen für null
- 9.8.3 Kurzschreibweisen für Funktionen
- 9.8.4 Nutzung von Class Properties
- 9.8.5 Chaining von nicht chainbaren Aufrufen
- 9.8.6 Extensions nutzen
- 9.8.7 DSL mit Lambdas
- 9.8.8 Infix-Notation für klare Sätze
- Kapitel 10: Kotlin für Android
- 10.1 Android &3 Kotlin
- 10.2 Android-Komponenten
- 10.2.1 Package-Level und Überblick
- 10.2.2 Klassenlevel
- 10.3 Bestandteile des Android-Frameworks
- 10.3.1 Activities und Fragmente
- 10.3.2 Eine minimale App
- 10.3.3 Views, Rendering und Layouting
- 10.3.4 Der Lifecycle
- 10.3.5 Android Architecture Components
- 10.4 Architektur für größere App-Projekte
- 10.5 Das Architekturmodell MVP(I)
- 10.5.1 Der Vertrag
- 10.5.2 Initialisierung
- 10.5.3 Daten laden und initiale UI erstellen
- 10.5.4 Mehrere Presenter/Komponenten
- 10.5.5 Updates der UI und Reagieren auf Dateneingaben
- 10.6 Das Architekturmodell MVVM
- 10.6.1 MVVM-Komponenten anlegen
- 10.6.2 Initialisierung
- 10.6.3 Daten laden und initiale UI erstellen
- 10.6.4 Updates der UI und Reagieren auf Dateneingaben
- 10.7 MVP oder MVVM? It depends ...
- 10.8 Erweiterung von Android-Klassen
- 10.9 Android und Coroutines
- 10.10 Delegation für Android
- 10.10.1 Property Delegation
- 10.10.2 Klassendelegation
- Kapitel 11: Zielplattformen für Kotlin
- 11.1 Multiplattform-Logik
- 11.2 Java
- 11.2.1 Java-Libraries
- 11.2.2 Reflection
- 11.2.3 Streams (Java 8)
- 11.2.4 Java Collections
- 11.2.5 Java Annotations
- 11.2.6 Annotation Use-Site Target
- 11.3 JavaScript in Kotlin
- 11.3.1 Einrichtung oder: Wie geht denn das?
- 11.3.2 Grundsätzliches zu Kotlin und JS
- 11.3.3 Standalone JS-App
- 11.4 JS-Standard-Bibliothek
- 11.4.1 Dynamic
- 11.4.2 Promises
- 11.4.3 Browser
- 11.4.4 JSON-Parsing
- 11.4.5 Nutzung von JS-Bibliotheken/-Aufrufen
- 11.5 Konvertierung von existierendem Java-Code zu JS
- 11.6 Konvertierung und Bearbeitung von existierendem JS-Code
- 11.7 Multiplattform-Projekte
- 11.7.1 Ein Multiplattform-Projekt beginnen
- 11.7.2 Expected/Actual
- 11.8 Native
- Kapitel 12: Rück- und Ausblick
- Anhang A: Referenztabellen
- A.1 Factories
- A.1.1 Factories für Arrays
- A.1.2 Factories für Listen und Maps
- A.2 Konvertierung von Listen/Arrays
- A.3 Operationen auf allen iterierbaren Elementen
- A.3.1 Zugriff auf einzelne Elemente
- A.3.2 Zugriff auf Maps
- A.3.3 Iteration über alle oder viele Elemente
- A.3.4 Manipulation von Listen
- A.3.5 Manipulation von Maps
- Stichwortverzeichnis
System requirements
File format: PDF
Copy protection: Watermark-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Use the free software Adobe Reader, Adobe Digital Editions, or any other PDF viewer of your choice (see eBook Help).
- Tablet/Smartphone (Android; iOS): Install the free app Adobe Digital Editions or another reading app for eBooks, e.g., PocketBook (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Watermark-DRM, a „soft” copy protection. This means that there are no technical restrictions to prevent illegal distribution. However, there is a personalised watermark embedded in the eBook that can be used to identify the purchaser of the eBook in the event of misuse and to provide evidence for legal purposes.
For more information, see our eBook Help page.