用Kotlin開發Android應用(II):建立新項目,kotlinandroid

來源:互聯網
上載者:User

用Kotlin開發Android應用(II):建立新項目,kotlinandroid

這是關於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 true13     }14  15     override fun onOptionsItemSelected(item: MenuItem): Boolean {16         // Handle action bar item clicks here. The action bar will17         // automatically handle clicks on the Home/Up button, so long18         // as you specify a parent activity in AndroidManifest.xml.19         val id = item.getItemId()20  21         //noinspection SimplifiableIfStatement22         if (id == R.id.action_settings) {23             return true24         }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

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.