Android Kotlin開發之Hello World
Kotlin簡介
Kotlin 是一種在 Java 虛擬機器上執行的靜態型別程式語言,被稱之為 Android 世界的Swift,由 JetBrains 設計開發並開源。
Kotlin 可以編譯成Java位元組碼,也可以編譯成 JavaScript,方便在沒有 JVM 的裝置上執行。
在Google I/O 2017中,Google 宣佈 Kotlin 成為 Android 官方開發語言。
Kotlin的優點
- 簡潔: 大大減少樣板程式碼的數量。
- 安全: 避免空指標異常等整個類的錯誤。
- 互操作性: 充分利用 JVM、Android 和瀏覽器的現有庫。
- 工具友好: 可用任何 Java IDE 或者使用命令列構建。
為什麼要學習Kotlin
- Java被Oracle收購後,Oracle出於商業的考慮,Java受到越來越多的限制,而且有訊息透露Java未來將對開發者收費
- Kotlin已經被JetBrains開源
- Kotlin成為Android官方開發語言,可見Kotlin已被Goolge列為重點發展物件
- Kotlin語言本身的特性:簡潔、安全、互操作性,尤其是跟Java的互操作性上,使得我們可以毫無障礙的使用原有的java庫
- 你就不想跟隨技術的腳步,做一個技術達人嗎
Kotlin初體驗
盜個Android官網的圖,What does Kotlin code look like?
Android中使用Kotlin
下面以新建Android專案為例,看看怎麼在Android中使用Kotlin,揭開她的神祕面紗。
新建專案時勾選Include Kotlin support
Project/build.gradle配置變化
buildscript { ext.kotlin_version = '1.2.61' repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" //添加了Kotlin編譯外掛 } }
app/build.gradle配置變化
apply plugin: 'com.android.application'
//使用Kotlin外掛
apply plugin: 'kotlin-android'
//使用Kotlin Android擴充套件外掛
apply plugin: 'kotlin-android-extensions'
android {
......
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" //新增Kotlin 標準庫
}
在Android Studio中,按照設定嚮導新建一個專案,最終會生成一個只顯示Hello World!的介面,看看這個簡單的Acticity程式碼:
package com.example.kotlin
import android.app.Activity
import android.os.Bundle
class MainActivity : Activity() { //繼承
override fun onCreate(savedInstanceState: Bundle?) { //方法定義和引數宣告
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)// 所有的語句結束都沒有分號;
}
}
是不是發現了一些Kotlin跟java不一樣的地方
Android studio中將現有Java程式碼轉換為Kotlin程式碼
開啟一個Java檔案並選擇 Code > Convert Java File to Kotlin File。
或新建一個Kotlin 檔案(File > New > Kotlin File/Class),然後將 Java 程式碼貼上到該檔案,出現提示時,點選 Yes,將此程式碼轉換為 Kotlin 程式碼。 您可以勾選 Don’t show this dialog next time,以便將 Java 程式碼段轉儲到 Kotlin 檔案中。
下面以一個簡單的javaBean為例,對比下,Java程式碼和轉換後的Kotlin程式碼的差異。
Java程式碼:
package com.example.kotlin;
public class Student {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
轉換後的Kotlin程式碼:
package com.example.kotlin
class Student {
var name: String? = null
var age: Int = 0
}
通過對比,程式碼確實精簡了不少,可以少些不少程式碼哩!
Kotlin後續學習
通過上面的介紹,如果你是Android開發者,已經可以在Android專案開始kotlin之旅了,需要的只是對Kotlin語法和特性的慢慢熟悉。這裡給大家推薦幾個入門學習的資料:
-
Kotlin官網教程:https://kotlinlang.org/docs/tutorials/
-
Kotlin教程|菜鳥教程:http://www.runoob.com/kotlin/kotlin-tutorial.html
-
Android開發者官網Kotlin:https://developer.android.com/kotlin/
-
Android快速轉戰Kotlin教程:https://blog.csdn.net/github_33304260/article/details/80343514
最後的話
我還是想最後聲援一下,Kotlin可以趕快學起來,用起來了,已經推出一年多了,這是Android開發的未來趨勢,我們退無可退,就像前幾年Android studio上位,eclipse謝幕一樣,必須提前做好準備。