บทนำสู่ Kotlin สำหรับ Android
เผยแพร่แล้ว: 2018-06-28ในโลกของ Android ฉันแน่ใจว่าไม่มีใครที่ไม่เคยได้ยินเกี่ยวกับ Java ภาษาการเขียนโปรแกรมอันทรงพลังที่สามารถสร้างแอปพลิเคชันที่ทำงานบนระบบปฏิบัติการเกือบทุกประเภทบนฮาร์ดแวร์ใดๆ อย่างไรก็ตาม ในช่วงหลายปีที่ผ่านมา มีการแนะนำภาษาการเขียนโปรแกรมใหม่จำนวนหนึ่งเพื่อทำงานบนเครื่องเสมือน Java ภาษาหนึ่งซึ่งเป็นส่วนหนึ่งของสิ่งที่ Google กำลังทำเพื่อให้การพัฒนาแอป Android "ดีขึ้น" คือ Kotlin Google ประกาศการสนับสนุน Kotlin อย่างกว้างขวางที่ Google I/O 2017
แน่นอนว่าเราทราบดีว่า Kotlin มีไว้สำหรับนักพัฒนาแอปและพวกเขาชอบมัน! แต่ทำไมพวกเขาถึงรักมัน? อะไรทำให้ Google ตอกย้ำว่า Kotlin มีความสำคัญต่อการพัฒนาแอปอีกครั้งในปี 2018 เพียงใด มันคืออะไรกันแน่?
ภาษาการเขียนโปรแกรมแบบคงที่ที่ทำงานบน JVM Kotlin เป็นภาษาการเขียนโปรแกรมและการพัฒนาจาก JetBrains Kotlin เป็นภาษาที่ทันสมัย แสดงออกได้ชัดเจน ปลอดภัย และทรงพลัง ซึ่งสามารถทำงานร่วมกับภาษา Android ที่มีอยู่ของเราได้ คุณสมบัติอื่น ๆ ได้แก่ :
1. Kotlin รองรับ Android Studio 3.0 ขึ้นไปอย่างสมบูรณ์
2. Kotlin เป็นภาษาที่ใช้ JVM ที่สร้างโดย “JetBrains” ทีมงานเบื้องหลัง “Intellij”
3. Intellij เป็นพื้นฐานสำหรับ Android Studio
4. Kotlin เป็น "ภาษาเชิงวัตถุ"
ทำไมต้องคอตลิน?
น้ำหนักเบา :
ห้องสมุด Kotlin ค่อนข้างเล็กเมื่อเทียบกับที่อื่น นี่เป็นสิ่งสำคัญเนื่องจากข้อจำกัดของวิธีการของ Android ที่เกี่ยวข้องกับ Proguard และ Multidexing เป็นปัญหาที่ต้องแก้ไขเสมอ โซลูชันทั้งหมดเหล่านี้จะเพิ่มความซับซ้อนที่อาจต้องใช้เวลาในขณะที่ทำการดีบั๊ก Kotlin เพิ่มวิธีการน้อยกว่า 7000 รายการ
ทำงานร่วมกันได้สูง :
Kotlin ทำงานได้ดีกับไลบรารีจาวา ทีม Kotlin ต้องการพัฒนาโปรเจ็กต์ปัจจุบันซึ่งเขียนด้วย java ต่อไปโดยไม่ต้องเขียนโค้ดใหม่ทั้งหมด ดังนั้น Kotlin จึงเป็นภาษาที่ใช้งานร่วมกันได้อย่างมาก
ผสานรวมกับ Android Studio :
Kotlin ถูกรวมเข้ากับ Android Studio และ Gradle ติดตั้งง่าย Kotlin เนื่องจากต้องใช้ปลั๊กอินหนึ่งตัวสำหรับ IDE และอีกตัวสำหรับ Gradle การเริ่มต้นโครงการ Android โดยใช้ Kotlin ไม่ใช่เรื่องยาก
ไม่มี NullPointerExceptions อีกต่อไป:
NullPointerException เป็นสาเหตุหนึ่งที่ทำให้แอปพลิเคชันขัดข้องใน Android มากที่สุด ในการแก้ไขข้อยกเว้นนี้และเพื่อปกป้องรหัสของคุณ การใช้การตรวจสอบค่าว่างทุกครั้งเป็นงานที่ต้องใช้เวลามาก แต่ใน Kotlin นี่เป็นข้อยกเว้นเนื่องจากมีการผสานรวมความปลอดภัยที่เป็นโมฆะไว้แล้ว
ประสิทธิภาพ :
แอปพลิเคชัน Kotlin ทำงานเร็วพอๆ กับที่ทำงานบน Java ด้วยการสนับสนุน Kotlin สำหรับฟังก์ชันอินไลน์ การใช้ "แลมบ์ดา" แอปพลิเคชันมักจะทำงานเร็วยิ่งขึ้น
ใน Android Studio 3.0 คุณสามารถเลือกสร้างกิจกรรมใน Kotlin วิธีที่ง่ายที่สุดในการเริ่มต้นใช้ kotlin คือการแปลง Java เป็น Kotlin โดยอัตโนมัติ คุณสามารถเขียนในภาษา Java จากนั้นคัดลอกและวางโค้ดจาวาไปยังไฟล์ kotlin และโปรแกรมจะแนะนำการแปลง
อีกวิธีง่ายๆ ในการแปลงไฟล์ Java เป็น Kotlin:
เมนู Android Studio >> รหัส >> แปลงไฟล์ Java เป็นไฟล์ Kotlin
การแปลงจะเป็นประเภทนี้:
ชวา:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity); } }
คอตลิน:
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity) } }
หลังจากกำหนดค่า Kotlin แล้ว ให้อัปเดตไฟล์ build.gradle สำหรับแอปพลิเคชันและดำเนินการตามที่แสดงด้านล่าง:


สุดท้าย ซิงค์โครงการ คุณสามารถคลิกที่ 'ซิงค์ทันที' การทำงานนี้เหมือนกับใน Java คุณสามารถเผยแพร่แอปพลิเคชันและลงชื่อสมัครใช้ในลักษณะเดียวกับที่เราทำกับแอปพลิเคชัน Android ใน Java
ในที่สุดคอมไพเลอร์ Kotlin จะสร้าง "byte-code" โดยไม่มีความแตกต่างในแง่ของรูปลักษณ์ของแอปพลิเคชันใน Android
ตอนนี้ แจ้งให้เราทราบเพิ่มเติมเล็กน้อยเกี่ยวกับ Kotlin Syntax
- การกำหนดแพ็คเกจ:
package com.example Import java.util.* - การกำหนดตัวแปร:
Int: Val a: Int = 3 // Immediate assignment Val b = 2 // “Int” type is Inferred Val c : Int // Type Required when no initializer is provided C = 3 // Deferred assignment - สตริง:
val firstName: String = "Raj" val lastName = "xyz" // still compile val dateOfBirth = "24th April, 1990" dateOfBirth = "28th July, 2000" // cannot be changed var car = "Toyota Matrix" car = "Mercedes-Maybach" // can be changed
ความแตกต่างระหว่าง "วาล" และ "วาร์"
Val : เป็นคีย์เวิร์ดที่อดีตไม่เปลี่ยนรูปหรืออ่านอย่างเดียว (ค่าของคีย์ไม่สามารถเปลี่ยนแปลงได้)
Var : เป็นคีย์เวิร์ดที่มีประเภทของมันอนุมานโดยคอมไพเลอร์ การกำหนดค่าอื่นของประเภทอื่นจะไม่ทำงาน กล่าวอีกนัยหนึ่ง ค่าของตัวแปรสามารถเปลี่ยนแปลงได้ แต่ชนิดของตัวแปรไม่สามารถทำได้
var age = 12 age = "12 years old" // Error: type mismatch val carName: String carName = "BMW Car" // will compile val carName = "Toyota", streetName = "Church street" // this won't compile // this will compile var carName = "Audi" var streetName = "Church street"
ตัวอย่าง:
fun main(args: Array<String>) { val i = 10 println("i = $i") // prints "i = 10" } val accountBalance = 200 val bankMessage = "Your account balance is $accountBalance" // Your account balance is 200
เราอ้างถึงตัวแปรโดยใช้อักขระ $ นำหน้าชื่อตัวแปร โปรดทราบว่าหากตัวแปรไม่ถูกต้องหรือไม่มีอยู่ โค้ดจะไม่คอมไพล์ คุณสามารถเรียกใช้เมธอดจากสตริงที่สอดแทรกได้โดยตรง คุณต้องเพิ่มวงเล็บปีกกา ${} เพื่อห่อ
val name = "Raj" val message = "The first letter in my name is ${name.first()}" // The first letter in my name is R
การกำหนดฟังก์ชัน:
fun sum(a: Int, b: Int): Int { return a + b } fun main(args: Array<String>) { print("sum of 2 and 8 is ") println(sum(2, 8)) } // sum of 2 and 8 is 10
ฟังก์ชันที่มีเนื้อหานิพจน์และประเภทการส่งคืนที่อนุมาน:
fun sum(a: Int, b: Int) = a + b fun main(args: Array<String>) { println("sum of 18 and 24 is ${sum(18, 24)}") } // sum of 18 and 24 is 42
สำหรับลูป:
fun main(args: Array<String>) { val items = listOf("apple", "banana", "Mango") for (item in items) { println(item) } } // apple banana Mango
การใช้คอลเล็กชัน:
Iterating over a collection: fun main(args: Array<String>) { val items = listOf("apple", "banana", "mango") for (item in items) { println(item) } } Checking if a collection contains an object using “in” operator: fun main(args: Array<String>) { val items = setOf("apple", "banana", "mango") when { "orange" in items -> println("juicy") "apple" in items -> println("apple is fine") } } // apple is fine

วิธีสร้างอินสแตนซ์ของคลาส:
val customer = Customer() // No New Keyword
ตัวสร้าง:
คลาสใน Kotlin สามารถมีตัวสร้างหลักและตัวสร้างรองตั้งแต่หนึ่งตัวขึ้นไป ตัวสร้างหลักเป็นส่วนหนึ่งของส่วนหัวของคลาส: มันอยู่หลังชื่อคลาส
class Person constructor(firstName: String) { }
ประกาศคุณสมบัติ:
คลาส Kotlin มีคุณสมบัติ สิ่งเหล่านี้สามารถประกาศเป็น mutable โดยใช้คีย์เวิร์ด “var” หรืออ่านอย่างเดียวโดยใช้คีย์เวิร์ด “val”
ตัวอย่างเช่น:
class Address { var name: String = “” var street: String = “” var city: String = “” }
อินเตอร์เฟซ :
อินเทอร์เฟซใน Kotlin นั้นคล้ายกับ Java 8 มาก พวกเขาสามารถมีการประกาศวิธีนามธรรมตลอดจนการใช้งานวิธีการ
อินเทอร์เฟซถูกกำหนดโดยใช้อินเทอร์เฟซคำหลัก
interface MyInterface { fun bar() fun foo() { // optional body } }
การใช้งานอินเทอร์เฟซ:
class Child : MyInterface { override fun bar() { // body } }
คลาสหรืออ็อบเจ็กต์สามารถใช้อินเทอร์เฟซได้ตั้งแต่หนึ่งรายการขึ้นไป



