Kotlin cho Android: những tính năng cú pháp bạn nên biết trước tiên

  • author-image

    Nguyễn Đình Cường

  • blog-tag
  • blog-comment 0 comment
  • created-date 09 Nov, 2026
blog-thumbnail

Kotlin là ngôn ngữ được khuyến nghị cho phát triển Android hiện nay. Cú pháp gọn, an toàn và dễ đọc hơn Java rất nhiều. Bài viết điểm qua những tính năng cốt lõi bạn nên nắm trước khi viết ứng dụng thực tế.

Biến: val và var

val là biến chỉ gán một lần, var là biến có thể thay đổi. Hãy ưu tiên val để code dễ suy luận hơn. Kotlin tự suy luận kiểu nên bạn thường không cần khai báo kiểu.

val name = "Bem"        // String, không đổi
var score = 0           // Int, có thể đổi
score += 10
val pi: Double = 3.14   // khai báo kiểu rõ ràng khi cần

Null safety: tránh lỗi NullPointerException

Đây là điểm khác biệt lớn nhất so với Java. Kiểu mặc định không thể null; muốn cho phép null phải thêm dấu hỏi.

var email: String? = null

println(email?.length)          // null nếu email là null
val len = email?.length ?: 0    // giá trị mặc định bằng toán tử Elvis

email?.let { println("Email: $it") }  // chỉ chạy khi không null

Hạn chế dùng toán tử !! vì nó ném lỗi khi gặp null, làm mất ý nghĩa của null safety.

Hàm và tham số

fun greet(name: String, greeting: String = "Xin chào"): String {
    return "$greeting, $name!"
}

fun square(x: Int) = x * x   // hàm một biểu thức

greet("An")                          // dùng tham số mặc định
greet(greeting = "Chào", name = "Bình")  // tham số có tên

Data class

Khi cần một lớp chỉ để chứa dữ liệu, data class tự sinh equals, hashCode, toString và copy:

data class User(val id: Int, val name: String, val age: Int)

val u1 = User(1, "Lan", 22)
val u2 = u1.copy(age = 23)
println(u2)  // User(id=1, name=Lan, age=23)

Collections và lambda

val numbers = listOf(1, 2, 3, 4, 5, 6)
val evenSquares = numbers
    .filter { it % 2 == 0 }
    .map { it * it }
println(evenSquares)  // [4, 16, 36]

Các hàm filter, map, sortedBy, groupBy giúp xử lý danh sách gọn gàng thay cho vòng lặp dài dòng.

When thay cho switch

fun describe(code: Int): String = when (code) {
    200 -> "Thành công"
    404 -> "Không tìm thấy"
    in 500..599 -> "Lỗi máy chủ"
    else -> "Không xác định"
}

Extension function

Bạn có thể thêm hàm cho kiểu có sẵn mà không cần kế thừa:

fun String.isValidEmail(): Boolean =
    contains("@") && contains(".")

println("a@b.com".isValidEmail())

Đây chỉ là kiểm tra đơn giản để minh họa, ứng dụng thật nên dùng bộ kiểm tra chuẩn hơn.

Coroutines cho tác vụ bất đồng bộ

Trong Android, gọi mạng hay đọc cơ sở dữ liệu không được chặn luồng giao diện. Coroutines cho phép viết code bất đồng bộ trông như code tuần tự.

viewModelScope.launch {
    val result = withContext(Dispatchers.IO) {
        repository.loadUsers()
    }
    _users.value = result
}

Hàm có thể tạm dừng được đánh dấu suspend, và chỉ gọi được từ coroutine hoặc từ một hàm suspend khác.

Gợi ý học tập

  1. Làm quen cú pháp trên Kotlin Playground trước khi vào Android Studio.
  2. Viết lại vài đoạn code Java quen thuộc sang Kotlin để thấy sự khác biệt.
  3. Học Jetpack Compose song song để dựng giao diện hiện đại.
  4. Đọc tài liệu chính thức, rất đầy đủ và có ví dụ chạy được.

Kết luận

Chỉ cần vững val và var, null safety, data class, lambda với collection và coroutines là bạn đã đọc hiểu được phần lớn code Android hiện đại. Hãy áp dụng ngay vào một ứng dụng nhỏ để kiến thức ngấm sâu.

Một vài thói quen viết Kotlin tốt

Kotlin cho phép viết rất ngắn, nhưng ngắn chưa chắc dễ đọc. Hãy ưu tiên đặt tên rõ nghĩa và tránh chuỗi lệnh quá dài trên một dòng. Dùng val thay cho var, dùng danh sách bất biến (List) thay cho MutableList khi không cần sửa, và chỉ chia sẻ dạng bất biến ra bên ngoài lớp. Khi một hàm có nhiều tham số cùng kiểu, hãy dùng tham số có tên để lời gọi tự giải thích.

Về kiểm soát lỗi, tránh bắt Exception chung chung và nuốt im lặng; hãy bắt đúng loại lỗi và xử lý có ý nghĩa. Dùng sealed class để biểu diễn tập kết quả hữu hạn như Thành công, Lỗi, Đang tải, trình biên dịch sẽ nhắc bạn xử lý đủ mọi nhánh trong when. Cuối cùng, bật các cảnh báo của trình biên dịch và công cụ phân tích mã tĩnh để học dần phong cách Kotlin chuẩn từ chính các gợi ý của chúng.

Tài liệu nên đọc tiếp

Sau phần cú pháp, hãy đọc hướng dẫn chính thức của Kotlin và các bài Android Basics của Google. Làm các bài thực hành trên Kotlin Playground giúp bạn quen dần mà không cần cài đặt phức tạp.

Nếu muốn có người dẫn dắt từ cú pháp đến ứng dụng Android hoàn chỉnh, bạn có thể tìm khóa học tại codebem.com.

author_photo
Nguyễn Đình Cường

0 comment