Có gì mới trong Kotlin 1.2?

Phiên bản 1.2 của ngôn ngữ Kotlin đã được tung ra, phiên bản Java được Google hỗ trợ phát triển ứng dụng Android, cung cấp một tính năng thử nghiệm cho phép tái sử dụng code trên nền tảng cũng như khả năng tương thích với hệ thống mô-đun Java 9.

Với bản nâng cấp 1.2.20 được phát hành ngày 17 tháng 1, Kotlin bổ sung thêm một số tính năng trong các lĩnh vực khác nhau, từ việc sử dụng hệ thống Gradle Build để xây dựng ứng dụng di động Android. Được mô tả như làbug fix và tool update, phiên bản 1.2.20 bao gồm:

  • Hỗ trợ bộ nhớ cache xây dựng Gradle.
  • Hỗ trợ cho chế độ phát triển trong nhiệm vụ Gradle JavaScript DCE (xóa mã chết).
  • Cải tiến hiệu suất cũng như kiểm tra và sửa lỗi mới trong plugin IntelliJ IDEA cho Kotlin.
  • Cải tiến để biên dịch gia tăng cho Android và các dự án hỗn hợp Java / Kotlin.
  • IDE hỗ trợ cho hướng dẫn Kotlin mới, bao gồm việc định dạng mã và sử dụng thành thạo ngôn ngữ và khả năng của thư viện.

Bản cập nhật này tương thích với IntelliJ IDEA IDE từ 1/2017 đến 3/2017. Nó cũng hoạt động với các phiên bản Android Studio IDE 3.0 và 3.1.

Kotlin 1.2 được gói kèm với IntelliJ Idea 2017.3 của JetBrains, sẽ được phát hành vào ngày 1 tháng 12. Người dùng Android Studio IDE hoặc phiên bản cũ của IntelliJ có thể cập nhật lên phiên bản mới thông qua Tool> Kotlin> Configure Kotlin Plugin Updates.

Các tính năng mới trong Kotlin 1.2

Kotlin cho phép các nhà phát triển sử dụng lại code giữa các nền tảng được hỗ trợ: JVM và JavaScript, và sau đó là native. Code được chia sẻ giữa các nền tảng được đặt trong một mô đun chung; các bộ phận phụ thuộc vào nền tảng sẽ được đặt trong mô-đun nền tảng cụ thể. Trong quá trình compile, code được tạo ra cho các phần trên platform.

Các developer có thể express dependencies của code chung vào các phần nền tảng cụ thể thông qua các declarations. Declarations này xác định một API, trong khideclarations thực tế là một trong hai nền tảng cụ thể cho API hoặc một bí danh kiểu đề cập đến việc triển khai một API có sẵn trong một library bên ngoài. Trong khi đó, standard library, có tính năng kotlin.math package để thực hiện các operation toán học trong cross-platform code.

Gói kotlin.math bây giờ cũng cung cấp độ chính xác cao hơn cho các toán đa năng của JavaScript.

Kotlin 1.2’s standard library cũng tương thích với hệ thống mô đun Java 9 mới được giới thiệu, vongăn cấm các gói tách (nhiều tệp .jar tuyên bố các lớp trong cùng một gói). Trong Kotlin 1.2, các đồ tạo tác kotlin-stdlib-jdk7 và kotlin-stdlib-jdk8 thay thế cho kotlin-stdlib-jre7 và kotlin-stdlib-jre8 cũ.

Ngoài ra để hỗ trợ Java 9, Kotlin 1.2 cũng loại bỏ các deprecated declarations trong gói Kotlin.reflect từ kotlin-reflect library. Developers cần phải chuyển sang sử dụng declarations trong kotlin.reflect.full package, xuất hiện lần đầu trong Kotlin 1.1.

Type inference cũng được cải thiện trong Kotlin 1.2, với việc cho phép compiler sử dụng thông tin từ các kiểu type phân loại trong type inference. Nếu mộtdeveloper call một method để trả về một type tham số, chẳng hạn như T, cũng như trả về giá trị với cho một type cụ thể, chẳng hạn như Foo, trình biên dịch giờ hiểu rằng T cho call này cần phải được ràng buộc với kiểu Foo. Điều này đặc biệt quan trọng đối với các developer Android, cho Kotlin compiler để phân tích đúng các findViewById call trong Android API Level 26. Ngoài ra, compiler bây giờ có tùy chọn để xem tất cả các cảnh báo là lỗi.

Kotlin 1.2 cũng có những cải tiến sau:

Nó bây giờ hỗ trợ literals mảng trong các annotations, đơn giản hóa coding.

Nó sử dụng một cú pháp nhất quán hơn.

Reflection API mới cho phép các developer kiểm tra xem liệu một lateinit variable đã được khởi tạo hay không.

Lateinit modifier bây giờ có thể được sử dụng trên top-level properties và local variables.

Kotlin đã có nguồn gốc như là một ngôn ngữ cho JVM nhưng từ đó đã được mở rộng để compile với JavaScript. Ngôn ngữ đã nhận được sự hỗ trợ vô cùng lớn vào mùa xuân này khi Google xác nhận nó như ngôn ngữ chính thức để xây dựng ứng dụng di động Android, cùng với chính Java.

Techtalk via infoworld