Kotlin for Android [P1]- Gettings started
Chào tất cả mọi người, đây là bài viết của đầu tay của mình tại viblo, (vạn sự khởi đầu nan, gian nan viết blog) Trong bài viết này, mình xin được chia sẽ một ít hiểu biết của mình về Kotlin - một "cô nàng" xinh đẹp mà mình may mắn có một thời gian làm quen, cưa cẩm và rồi nảy sinh tình cảm . ...
Chào tất cả mọi người, đây là bài viết của đầu tay của mình tại viblo, (vạn sự khởi đầu nan, gian nan viết blog)
Trong bài viết này, mình xin được chia sẽ một ít hiểu biết của mình về Kotlin - một "cô nàng" xinh đẹp mà mình may mắn có một thời gian làm quen, cưa cẩm và rồi nảy sinh tình cảm .
Kotlin, em là ai?
Kotlin có thể xem như một lính mới trong một rừng các ngôn ngữ lập trình hiện nay, như lời giới thiệu của nó "Statically typed programming language for the JVM, Android and the browser", Kotlin là một ngôn ngữ lập trình kiểu tĩnh, chạy trên máy ảo JVM, và tác giả của nó chính là JetBrains, cha đẻ của IntelliJ, và nếu bạn chưa biết nó là gì thì đó chính là nền tảng của Android Studio mà chúng ta say sưa code hằng ngày.
Tản mạn chút xíu, cái tên Kotlin có nguồn gốc từ một tên hòn đảo gần thành phố Saint Petersburg (Nga) - nơi JetBrains đặt trụ sở nghiên cứu và phát triển, phiên bản đầu tiên được released vào ngày 15/2/2016 : Kotlin 1.0, tính tới thời điểm hiện tại thì nó đã được update lên ver 1.0.3, chứng tỏ rằng ngôn ngữ này vẫn đang được cập nhật liên tục. Kotlin ra đời với niềm tin của JetBrains rằng sẽ khắc phục được nhược điểm của java và ai biết đâu đấy ...
Kotlin có gì hot?
Như mình đã nói, Kotlin là một ngôn ngữ sinh sau đẻ muộn, do đó nó kế thừa và cập nhật những điểm mạnh từ những lão làng đi trước, nào, cùng check hàng xem em ý có điều gì hấp dẫn nhé:
Expressiveness
Nếu bạn đã phát chán với cú pháp dài dòng của java, chắc hẳn bạn sẽ rất thích thú với những gì mà kotlin mang lại.
oke thử nhé, bình thường nếu bạn muôn khai báo một class data trong java:
public class Gift { private String name; public Gift(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
rất nhiều dòng code, thay vào đó, bạn có thể làm nó trông ngon hơn với Kotlin như thế này:
data class Gift(var name: String}
yeah!
Null safety
NullPointEx! vô số lần mình phải thốt lên như khi code với java, một cạm bẫy rất dễ gặp với những newbie, nhưng hãy dẹp nỗi sợ hãi đó qua một bên, Kotlin cung cấp một cơ chế ngay khi khai báo biến, bạn phải chỉ rõ biến đó được phép null hay là không:
fun nullSafetyDemo() { //This won´t compile. Artist can´t be null var notNullArtist: Artist = null //Artist can be null var artist: Artist? = null // Won´t compile, artist could be null and we need to deal with that artist.print() // Will print only if artist != null artist?.print() // Smart cast. We don´t need to use safe call operator if we previously checked nullity if (artist != null) artist.print() // Only use it when we are sure it´s not null. Will throw an exception otherwise. artist!!.print() // Use Elvis operator to give an alternative in case the object is null val name = artist?.name ?: "empty" }
yeah!
Extension functions
Một tính năng tuyệt với của Kotlin, chúng ta có thể add một function vào bất kì một class nào. really? thử xem nhé:
Tạo một function như này:
fun Fragment.toast(message: CharSequence, duration: Int = Toast.LENGTH_SHORT) { Toast.makeText(getActivity(), message, duration).show() }
Done, giờ muốn show Toast ở fragment nào, chúng ta chỉ cần gọi:
fragment.toast("Hello world!")
say oh yeah!
Functional support (Lambdas)
Hiện tại thì android cũng đã support java 8 với biểu thức Lambdas, một điều rất tuyệt vời more lambdas, more beautiful, mình sẽ không nói nhiều về nó nữa, thay vào đó mình sẽ nói những tip hay khi sử dụng lambdas ở những bài sau, các bạn nhớ đón xem nhé