在 Google I/O 2017 大會(huì)上舟扎,Google 正式宣布 Android Studio 3.0 完全支持 Kotlin踢代,Kotlin 成為正式的 Android 編程語(yǔ)言砾脑,也將從 JetBrain 移交給獨(dú)立的非盈利組織來(lái)進(jìn)行后續(xù)的開(kāi)發(fā)兔乞。
Kotlin是一門(mén)與Swift類(lèi)似的靜態(tài)類(lèi)型JVM語(yǔ)言岳守,由JetBrains設(shè)計(jì)開(kāi)發(fā)并開(kāi)源凄敢。與Java相比,Kotlin的語(yǔ)法更簡(jiǎn)潔棺耍、更具表達(dá)性贡未,而且提供了更多的特性,比如蒙袍,高階函數(shù)俊卤、操作符重載、字符串模板害幅。它與Java高度可互操作消恍,可以同時(shí)用在一個(gè)項(xiàng)目中。
按照J(rèn)etBrains的說(shuō)法以现,根據(jù)他們多年的Java平臺(tái)開(kāi)發(fā)經(jīng)驗(yàn)狠怨,他們認(rèn)為Java編程語(yǔ)言有一定的局限性和問(wèn)題,而且由于需要向后兼容邑遏,它們不可能或很難得到解決佣赖。因此,他們創(chuàng)建了Kotlin項(xiàng)目记盒,主要目標(biāo)是:
?創(chuàng)建一種兼容Java的語(yǔ)言
?編譯速度至少同Java一樣快
?比Java更安全
?比Java更簡(jiǎn)潔
?比最成熟的競(jìng)爭(zhēng)者Scala還簡(jiǎn)單
閑話少說(shuō)憎蛤,下面開(kāi)始用一下這家伙。
Google是準(zhǔn)備在android studio 3.0正式推出Kotlin,那么現(xiàn)在我們要用Kotlin就必須安裝插件了纪吮。打開(kāi)android studio>File>Settings>Plugins>Browse Repositoies 搜索Kotlin俩檬,點(diǎn)擊install然后等待,安裝成功restart android studio碾盟。
下面開(kāi)始新建項(xiàng)目棚辽,配置gradle
在project的gradle dependencies里面添加
buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.2-3"
}
}
app的gradle里面添加
dependencies {
compile 'org.jetbrains.kotlin:kotlin-stdlib:1.1.2-3'
}
下面是Activity的代碼,看起來(lái)簡(jiǎn)潔了很多
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
initView()
}
fun initView() {
val txt : String = "toast message"
btn_test.setOnClickListener {
toast(txt)
}
}
fun AppCompatActivity.toast(message: CharSequence, duration: Int = Toast.LENGTH_SHORT) {
Toast.makeText(this, message, duration).show()
}
}
在build.gradle(Module:app)中添加如下代碼
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
就可以和findViewById說(shuō)再見(jiàn)了冰肴。另外屈藐,每一行語(yǔ)句后的冒號(hào)都沒(méi)有了榔组,Button點(diǎn)擊的事件也少了,讓人眼前一亮的感覺(jué)联逻。使用ctrl+alt+shift+k快捷鍵可以把java代碼轉(zhuǎn)換成kotlin瓷患,也是挺方便的。
這篇文章寫(xiě)得不錯(cuò)遣妥,想深入了解的可以看一下
http://droidyue.com/blog/2017/05/18/why-do-i-turn-to-kotlin/
from java to kotlin
https://github.com/MindorksOpenSource/from-java-to-kotlin/blob/master/README-ZH.md