Skip to Content

Kotlin lernen

Dauer: 10 Minuten

  • Kotlin kennenlernen

Ziel: Zugang zu Kotlin erleichtern

Google empfiehlt seit ein paar Jahren, dass neue Android-Projekte mit Kotlin anstatt Java umgesetzt werden sollten.

👨🏻‍💻

Anhand der MainActivity können wir zum Kotlin-Code kurz den entsprechenden Java-Code andeuten (siehe unten).

Somit wird hoffentlich einigermaßen deutlich, wie Kolin-Code aus Java-Sicht zu verstehen ist. Außerdem sollte dadurch Kotlin attraktiver wirken.

MainActivity.kt
// MainActivity in Kotlin, Dateiname: MainActivity.kt // package hier weggelassen import android.os.Bundle import androidx.activity.ComponentActivity // weitere imports weggelassen class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // Code hier weggelassen } }
MainActivity.java
// MainActivity in Java, Dateiname: MainActivity.java // package hier weggelassen import android.os.Bundle; import androidx.activity.ComponentActivity; public class MainActivity extends ComponentActivity { @override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } }

Am Anfang wirkt Kotlin vielleicht etwas ungewöhnlich aber viele Java-Entwickler sind inzwischen auf Kotlin mit seinen modernen und eleganten Spracheigenschaften umgestiegen. Wer sich mit Java auskennt, wird erfahrungsgemäß in relativ kurzer Zeit mit Kotlin zurechtkommen.

Wir werden im Laufe der Vorführungen mehrere Kotlin-Beispiele sehen.

Ausgewählte Besonderheiten von Kotlin für Leute mit Erfahrung in Java (thanks ChatGPT!):

  • Interop mit Java nahtlos: Kotlin kann Java (und umgekehrt) nutzen
  • Semikolons optional, new existiert nicht
  • Frühere NullPointer-Probleme werden zur Compile-Time sichtbar
  • Null-Safety: String? (nullable) vs. String (non-null)
  • Null-Safety: Safe-Call ?., Elvis-Operator ?:, Not-Null-Assert !!
  • val (immutable) vs. var (mutable)
  • var x: Int = 0 erzeugt automatisch Getter/Setter
  • Custom-Getter/Setter direkt an der Property definierbar
  • Top-Level-Funktionen (keine Utility-Klassen nötig)
  • Default-Parameter & Named Arguments (fun f(a: Int = 0))
  • Single-Expression-Funktionen: fun inc(x: Int) = x + 1
  • Klassen sind final by default → open für Vererbung
  • data class generiert equals/hashCode/toString/copy
  • when statt switch: Ausdruck (liefert Wert), pattern-artig, häufig else überflüssig
  • Scoping-Funktionen: let, also, apply, run, with (unterscheiden: Rückgabewert & Receiver)
  • Koroutinen statt Threads: suspend-Funktionen, flow für Streams
  • u.v.m.

Tipp: Mit KI-Tools wie ChatGPT oder Gemini (auch in Android Studio) kann Kotlin gelernt werden, insbesondere aus Sicht anderer Sprachen wie Java.

Vertiefendes Material