這是關於Kotlin的第二篇。各位高手發現問題,請繼續“拍磚”。
原文標題:Kotlin for Android(II): Create a new project
原文鏈接:http://antonioleiva.com/kotlin-android-create-project/
原文作者:Antonio Leiva(http://antonioleiva.com/about/)
原文發布:2015-03-23
在對Kotlin是什么和它能夠為我們做什么有了清晰的概念后,該是配置Android Studio了,讓它來幫助我們用Kotlin開發Android APP。開始只需要做幾個步驟,而后續對每個新項目都需要進行Gradle的配置。
在這組文章中,我將創建簡化版本的Bandhook,Bandhook是我之前開發的,它主要是鏈接音樂Rest API,而后返回一組樂隊的信息。去Github的Bandhook Kotlin項目下可以查看到相關代碼。
創建新項目並下載Kotlin插件
按照創建普通項目那樣,在Android Studio中,創建僅有一個Activity的基本Android項目。
完成后,要做的第一件事就是去下載Kotlin插件。在Android Studio的Preferences中找Plugins項。在那里搜索Kotlin插件。然后安裝Kotlin插件並重啟IDE。
添加Kotlin插件依賴關系到應用的build.gradle
根build.gradle需要新的依賴關系,這是在我們的主模塊使用Kotlin的要求:
1 buildscript { 2 repositories { 3 jcenter() 4 } 5 dependencies { 6 classpath 'com.android.tools.build:gradle:1.1.3' 7 classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:0.11.91' 8 } 9 }
配置build.gradle模塊
首先,應用Kotlin插件:
1 apply plugin: 'com.android.application' 2 apply plugin: 'kotlin-android'
然后,添加Kotlin庫到你的依賴關系中:
1 dependencies { 2 compile fileTree(dir: 'libs', include: ['*.jar']) 3 compile 'org.jetbrains.kotlin:kotlin-stdlib:0.11.91' 4 }
最后,你需要添加Kotlin文件夾,它是在下一步創建的,用來存放源代碼的文件夾:
1 android { 2 compileSdkVersion 22 3 buildToolsVersion "22.0.0" 4 5 ... 6 7 sourceSets { 8 main.java.srcDirs += 'src/main/kotlin' 9 } 10 }
或者,你可以跳過這一步,使用Android Studio功能做下一步:
我更喜歡手動做這步,管理我的Gradle文件組織,但是,第二個選擇更容易一些。
創建Kotlin文件夾
你可以很容易的直觀地由“Android”變換到“Project(項目)”。進入“app->src->main”,創建名為“kotlin”的文件夾:
轉換Java Activity到Kotlin文件
Kotlin插件可以把Java Activity轉換到Kotlin類。在“Code”菜單中,選擇“Convert Java File to Kotlin File”,我們可以非常容易地將我們的Activity轉換到Kotlin類:
IDE建議將新文件移至到Kotlin文件中。點擊“Move File”(如果你們看見這個選項可以手動移動文件)。
你會得到轉換為Kotlin的非常相似代碼。我建議你去閱讀這些代碼,直至你理解它們的區別:
1 public class MainActivity : ActionBarActivity() { 2 3 override fun onCreate(savedInstanceState: Bundle?) { 4 super.onCreate(savedInstanceState) 5 setContentView(R.layout.activity_main) 6 } 7 8 9 override fun onCreateOptionsMenu(menu: Menu): Boolean { 10 // Inflate the menu; this adds items to the action bar if it is present. 11 getMenuInflater().inflate(R.menu.menu_main, menu) 12 return true 13 } 14 15 override fun onOptionsItemSelected(item: MenuItem): Boolean { 16 // Handle action bar item clicks here. The action bar will 17 // automatically handle clicks on the Home/Up button, so long 18 // as you specify a parent activity in AndroidManifest.xml. 19 val id = item.getItemId() 20 21 //noinspection SimplifiableIfStatement 22 if (id == R.id.action_settings) { 23 return true 24 } 25 26 return super.onOptionsItemSelected(item) 27 } 28 }
主要差異
只要閱讀前面的代碼,我們就可以看到一些明顯的差別。更多的不同會在后續的文章中讀到:
- 使用冒號替代“extends”關鍵字
- 顯式地使用“override”:在Java中,我們可以用注釋使我們的代碼更清晰,但不是必須的。而Kotlin強制我們這么做。
- 對於函數用“fun”:Kotlin是面向對象的函數式開發語言,它非常類似其他開發語言,如Scala。Java的方法是以函數表示的。
- 函數參數用不同的命名方法:類型和名稱以另一種方式編寫,用冒號分割。
- 選項用分號:每行結束不需要分號。如果要用也可以。但是,不用分號可以節省我們的時間,而且代碼更清晰。
- 其它次要細節:在介紹一文中,我已經談過‘?’符號。它表示參數可以是空(null)。對於空的處理不同於在Java的用法。
總結
雖然我們可以認為使用一門新的編程語言會是很困難,但是Kotlin是有JetBrains團隊創建的最簡單的和可互操作的編程語言,並覆蓋Java不足的需要。由於Android Studio也是基於JetBrains的產品,這將很容易地集成到這個IDE中,並開始使用它。
在下一篇文章中將介紹一些技巧和竅門,讓我們在用Kotlin開發Android APP時更加輕松。
前一篇:http://www.cnblogs.com/figozhg/p/4983919.html