【Android】使用Kotlin在Android Studio上開發App

前言

嗯,然後的然後,今天有Qcon大會哈,很不錯哈,公司有5張門票,嗯,明天過去看看。Kotlin 是一個基於 JVM 的新的編程語言,由 JetBrains 開發。Kotlin可以編譯成Java字節碼,也可以編譯成JavaScript,方便在沒有JVM的設備上運行。嗯,上面的話我是複製百度百科的,其實就想說,這東西可以用來開發Android。好,我們來看看這玩意兒。

那麼,現在大家開發Android的話一般來說都是直接用Java,這個沒錯吧(高手除外)。嗯,那麼用力那麼久的Java,不知道大家是否有想過Java的不足,已經很多可以優化的地方呢。當然,新修訂的版本中也逐漸覆蓋以往的不足,但是Android開發者們還沒來得及用上它。所以這也使得Kotlin這樣的語言可以有用武之地,可以讓開發者們在舊的開發環境中使用新的特性。

嗯,然後我想說的是其實我也接觸這門語言不是很久,今天就寫一個入門級的博文吧,至少能讓大家可以在Android Studio中嘗試用Kotlin去開發是吧。

如何在Android studio使用Kotlin開發

(之前我第一次接觸的時候看了很多博文,其實現在的配置完全不用像以前那麼麻煩,其實就很簡單的3個步驟)

1.在IDE plugins中下載Kotlin插件

打開你的Android studio 在設置中打開plugins,然後在裏面搜索Kotlin,點擊安裝,之後安裝後重啓。
這裏寫圖片描述

2.創建、轉換Kotlin文件

然後就是新建一個工程,然後你可以右鍵試試,看看是不是多出了2個選項。如圖。
這裏寫圖片描述
然後定位到MainActivity,在菜單欄選擇“Code”,選擇“Convert Java File to Kotlin File”,你會看到你的MainAvtivity變成了Kotlin文件,這個時候其實你去編譯的話是有問題的。看第三步。
這裏寫圖片描述

3.配置Kotlin(其實是全自動)

然後由於你是第一次使用Kotlin,Studio會提示要你配置Kotlin的,點擊配置即可,其實啥都不用選,直接點“ok”。到這裏你就配置完成了,然後可以試試編譯運行了。
這裏寫圖片描述

嘗試使用Kotlin編寫代碼

數據類型定義

數據模型在開發中絕對是不可避免的,以往都會定義很多變量,然後添加get(),set()方法。如果現在使用Kotlin開發,你可以這麼定義。

/**
 * Created by Blin on 2016/10/20.
 */

data class People(
        var id: Long,
        var name: String,
        var weight: Double,
        var height: Double
)

空類型是安全的

以往我們在使用數據的時候最多的就是

if(a != null){
    ...
}

那麼在Kotlin中其實完全麼有必要這麼寫了,可以看一下下面代碼的順序思路和註釋。

//        這是不允許的,People不能爲null
//        var people: People = null
//        以下是正確的聲明
        var people: People? = null
//        不可以直接調用people,因爲有可能people是null
//        people.id
//        如果people有可能爲null,則必須先用如下的形式判斷
        people?.id
//        當然,如果按照java的習慣,先判斷不爲null了,那也是可以直接使用的
        if(people !=null) people.id
//        如果能該變量一定不爲null,可以使用2個感嘆號表示,但是如果爲null,那會拋出異常
//        people!!.id

可以看出,在上面聲明變量的時候不能直接生命爲null,必須在等號前面加一個? 表示其實people是可以爲null的。然後就是不能直接調用方法或者引用變量,必須在引用之前加?詢問,當然如果能保證當前變量一定不爲null,那可以直接用!!表示然後調用。如果在if()中判斷了不爲null,那麼是可以直接調用的。

可擴展函數

剛纔上面我們創建了一個People類,如果我想要給該類添加一個方法,可以這麼做

fun People.toast(context: Context,message: CharSequence){
        Toast.makeText(context,message,Toast.LENGTH_SHORT).show()
    }

然後想調用可以這麼調用

mPeople.toast(mContext,"其實我是來測試的")

Lambdas

這個函數其實java8也支持了,當然之前大家是通過第三方依賴來支持的。
我這邊找到那個默認TextView,然後添加點擊事件

tv = findViewById(R.id.text) as TextView?
tv?.setOnClickListener { mPeople.toast(mContext,"其實我是來測試的") }

然後你點擊那個“holleWord” 就可以顯示Toast了。

總結

嗯,總的來說Kotlin真的是非常簡潔,的確極大的簡化了代碼,對於開發者來說的確是可以大大提高開發效率。雖說Kotlin現在可以和java無縫連接,意味着爲我們可以直接使用Java現在已有的大量類庫,所以說這門語語言雖然很年輕,但是已經有這大量的庫可以使用。
在使用過程中我們很少需要指定類型,編譯器可以在絕大多數情況下推斷出變量或者返回值的類型,這直接帶來的好處就是安全與便捷。
還有讓我覺得很棒的就是null是安全的,在java中,遇到最多的,最容易出問題的就是nullPointerExcetion,在Kotlin中的null是顯式的,就是是強制要求開發者去注意這一點,從而減少nullPointerExcetion的出錯率。
OK,明天有事,今天先行,朋友們週末愉快~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章