Wróć
  • Dodano: 31.08.2019
  • Sylwester Madej
  • Kotlin, Programming

10 cech, które uwielbiam w języku Kotlin

Subiektywna lista cech Kotlina, które przyspieszają pracę, poprawiają czytelność i dają frajdę z kodu.

10 cech, które uwielbiam w języku Kotlin

Kotlin stał się moim ulubionym językiem do tworzenia aplikacji Android. Po kilku latach pracy z tym językiem chciałbym podzielić się 10 cechami, które go kochamy.

1. Null Safety

Kotlin zmusza Cię do myślenia o wartościach null już w momencie kompilacji. To eliminuje wiele błędów:

// Java - mogę zapomnieć o null check
String name = getNullableName();
int length = name.length(); // NPE!

// Kotlin - typowanie wymusza bezpieczeństwo
val name: String? = getNullableName()
val length = name?.length // safe call

2. Extension Functions

Mogę dodać funkcje do istniejących klas bez dziedziczenia:

fun String.isEmailValid(): Boolean {
    return this.contains("@")
}

val email = "user@example.com"
if (email.isEmailValid()) { ... }

3. Data Classes

Automatycznie generują equals(), hashCode(), toString():

data class User(val id: Int, val name: String)
// getter, setter, equals, hashCode, toString - wszystko automatycznie!

4. Smart Casts

Po sprawdzeniu typu, nie muszę już castować:

if (obj is String) {
    println(obj.length) // obj jest już String!
}

5. Lambda Expressions

Funkcje anonimowe są proste i czytelne:

val numbers = listOf(1, 2, 3, 4, 5)
numbers.filter { it > 2 }.forEach { println(it) }

6. Default Parameters

Mogę ustawić domyślne wartości parametrów:

fun makeRequest(
    url: String,
    timeout: Int = 5000,
    retries: Int = 3
) { ... }

7. Named Parameters

Mogę wywoływać funkcje z nazwanymi parametrami:

makeRequest(
    url = "https://api.example.com",
    timeout = 10000,
    retries = 5
)

8. Destructuring

Mogę rozbić obiekty na zmienne:

data class Point(val x: Int, val y: Int)
val (x, y) = Point(1, 2)

9. Scope Functions

let, apply, with, run - są bardzo przydatne:

User(1, "John").apply {
    email = "john@example.com"
    age = 25
}.also { user ->
    saveToDatabase(user)
}

10. Companion Objects

Mogę mieć “statyczne” metody bez klasy companion:

class User {
    companion object {
        fun create(name: String) = User(1, name)
    }
}

val user = User.create("John")

Podsumowanie

Kotlin to nie tylko alternatywa dla Java - to znaczące ulepszenie. Kod jest bardziej bezpieczny, czytelny i zwięzły.

Jeśli nie próbowałeś jeszcze Kotlin, zachęcam Cię do tego. Nie będziesz żałować! 💎

Przejdź do innego artykułu

Wszystkie artykuły Wróć do strony głównej

Masz pytania? Sprawdź stronę najczęściej zadawane pytania lub napisz do mnie szkolenia@szkoleniaandroid.pl