Kotlin學(xué)習(xí)第一彈,搭建kotlin環(huán)境

Google IO大會(huì)將Kotlin定位為Android開(kāi)發(fā)第一語(yǔ)言,作為一個(gè)合格的Android程序猿,是時(shí)候?qū)W習(xí)一波來(lái)一波kotlin教程了:

  1. AndroidStudio 3.0將內(nèi)置對(duì)kotlin的支持,但是暫時(shí)還是個(gè)預(yù)覽版,正式版需要等待幾個(gè)月之后,鑒于大部分還是2.x版本,需要安裝最新的kotlin插件

    打開(kāi)AndroidStudio plugins,搜索Kotlin,安裝插件即可(注:很多教程上需要裝Kotlin Android Extensions,但是如今kotlin插件已經(jīng)集成了Kotlin Android Extensions,只需要裝一個(gè)kotlin即可)

屏幕快照 2017-06-06 下午4.33.21.png

2.創(chuàng)建一個(gè)Android項(xiàng)目,選擇空模板即可.
3.在項(xiàng)目的build.gradle(Project gradle) 加上kotlin編譯支持,寫(xiě)這篇博客時(shí)最新版本的kotlin1.1.2-3,
為了統(tǒng)一管理版本,我們定義

ext.kotlin_version = "1.1.2-3"

最終如下:

buildscript {
    ext.kotlin_version = "1.1.2-3"
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

dependencies中加入了
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

  1. 項(xiàng)目的build.gradle(Module)加入kotlin支持
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

同時(shí)引入kotlin的jar包

compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
  • 最終的項(xiàng)目完整的build.gradle如下
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

buildscript {
    repositories {
        jcenter()
    }
}

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"

    defaultConfig {
        applicationId "me.chunyu.spike.wcl_kotlin_demo"
        minSdkVersion 14
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.1.1'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    testCompile 'junit:junit:4.12'
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
  1. 配置完成后,build一下項(xiàng)目,即可開(kāi)始kotlin代碼的編寫(xiě),這回能好好的出去裝X了

  2. 將Java代碼轉(zhuǎn)換成kotlin代碼

打開(kāi)MainActivity,選擇code -->convert java file to kotlin(可以順便記一下快捷鍵),將Java代碼轉(zhuǎn)換成kotlin代碼;

屏幕快照 2017-06-06 下午5.34.45.png

轉(zhuǎn)換后如下:

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        tv.text="Hello kotlin"
        tv.textSize=20.0f
        tv.setTextColor(Color.BLACK)
    }
}

十分簡(jiǎn)潔,再也沒(méi)有findViewById,再也沒(méi)有setText等十分繁瑣的代碼,如果你之前學(xué)過(guò)Python,發(fā)現(xiàn)他們是如此的相像,語(yǔ)法相似度超過(guò)90%;

示例代碼 GitHub KotlinStudio

歡迎start,issue我的GitHub,

FragmentStack

  • 便捷的利用fragment替代Activity創(chuàng)建頁(yè)面,自帶任務(wù)棧,返回棧;

ImageFrame

  • 高效讀取序列幀,序列幀動(dòng)畫(huà)必備,內(nèi)存復(fù)用,千張圖片只使用一張圖片的內(nèi)存;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末酝润,一起剝皮案震驚了整個(gè)濱河市袍祖,隨后出現(xiàn)的幾起案子谢揪,更是在濱河造成了極大的恐慌捐凭,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異匹颤,居然都是意外死亡托猩,警方通過(guò)查閱死者的電腦和手機(jī)京腥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)他宛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人镜撩,你說(shuō)我怎么就攤上這事队塘∪俗疲” “怎么了投放?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我烙样,道長(zhǎng)谒获,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮赔硫,結(jié)果婚禮上爪膊,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好小槐,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布件豌。 她就那樣靜靜地躺著茧彤,像睡著了一般骡显。 火紅的嫁衣襯著肌膚如雪惫谤。 梳的紋絲不亂的頭發(fā)上珠洗,一...
    開(kāi)封第一講書(shū)人閱讀 48,970評(píng)論 1 284
  • 那天蝴猪,我揣著相機(jī)與錄音自阱,去河邊找鬼米酬。 笑死,一個(gè)胖子當(dāng)著我的面吹牛加派,可吹牛的內(nèi)容都是我干的哼丈。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼桨啃,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼檬输!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起主卫,我...
    開(kāi)封第一講書(shū)人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤鹃愤,失蹤者是張志新(化名)和其女友劉穎软吐,沒(méi)想到半個(gè)月后凹耙,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了欲险。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖喜每,靈堂內(nèi)的尸體忽然破棺而出带兜,到底是詐尸還是另有隱情刚照,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站浑彰,受9級(jí)特大地震影響郭变,放射性物質(zhì)發(fā)生泄漏涯保。R本人自食惡果不足惜夕春,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一撇他、第九天 我趴在偏房一處隱蔽的房頂上張望狈蚤。 院中可真熱鬧脆侮,春花似錦、人聲如沸靖避。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)篡九。三九已至,卻和暖如春榛臼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背沛善。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留金刁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓漠秋,卻偏偏與公主長(zhǎng)得像抵屿,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子轧葛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,498評(píng)論 25 707
  • 一. 在Android Studio上安裝Kotlin插件 按快捷鍵Command+, -> 在Preferen...
    元亨利貞o閱讀 1,231評(píng)論 4 4
  • 我能講出來(lái)的心事并不多求晶,敢被你聽(tīng)到的也很少。已經(jīng)不太喜歡向別人訴苦了芳杏,一半是因?yàn)橛X(jué)得沒(méi)有特別的必要,也有...
    黒白橙閱讀 344評(píng)論 0 7
  • 能夠于人眼前予人舒適的人爵赵,每一句回復(fù)都必是真誠(chéng)謙遜泊脐,毫無(wú)假使的懷疑。每一個(gè)動(dòng)作必然進(jìn)退適宜容客,沒(méi)有自以為是的隔離。 ...
    莎范兒閱讀 92評(píng)論 0 0