Kotlin for Android (II)创建一个工程

编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识、前端、后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过!

注:第一篇文章请看这里:kotlin-for-android简介(1) 

当我从what Kotlin is and what it can do for us获 得一些启发之后,觉得是时候配置下 Android Studio来帮助我们使用Kotlin开发Android应用程序了. 其中有些步骤只需要在初次使用时完成一次, 但是其他一些Gradle配置需要为每一个新项目做一遍. ( 译者注 : 如果你对Kotlin还不了解,可以先看看kotlin-for-android简介这篇文章 )

对于本系列文章, 我将创建一个我早些时候创建的Bandhook的简化版本, 它基本上就是连接到一个基于RESTful的音乐API然后接收一些乐队的信息. 链接到 Bandhook Kotlin on Github 查看源代码.

创建一个新项目然后下载Kotlin插件

就像你平常做的那样,我们只需要用Android Studio创建一个带Activity的基本Android项目。

一旦完成,我们需要做的第一件事就是去下载Kotlin插件. 去到Android Studio的系统设置中然后查找plugins.之后,再次使用搜索找到Kotlin插件,安装并重启IDE。

687474703a2f2f377869386b6a2e636f6d312e7a302e676c622e636c6f7564646e2e636f6d2f6b6f746c696e2d706c7567696e2d65313432343633323537303734312e706e67.png

添加Kotlin插件的依赖到的应用程序的build.gradle中

该项目的build.gradle需要添加一个新的依赖,这个依赖将会被Kotlin插件要求以在主Module中使用:

 
 
  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. }

配置Module的build.grade

首先, 应用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的操作:

687474703a2f2f377869386b6a2e636f6d312e7a302e676c622e636c6f7564646e2e636f6d2f636f6e6669677572652d6b6f746c696e2d70726f6a6563742e706e67.png

我更倾向于手动去做以保持我的Gradle文件有整洁有序, 但第二个选项可能较为容易些。

创建Kotlin文件夹

如果你将项目的视图从‘Android’转到‘Project’,那将会非常容易。依次选择‘app->src->main’ 然后创建一个名为 ‘kotlin'的文件夹:

687474703a2f2f377869386b6a2e636f6d312e7a302e676c622e636c6f7564646e2e636f6d2f6b6f746c696e2d666f6c6465722e706e67.png

将Java activity转换成Kotlin文件

Kotlin插件能将Java转换为Kotlin类. 我们可以轻松的通过‘Code’菜单中的‘Convert Java File to Kotlin File'选项转换当前的Activity到Kotlin类 :

687474703a2f2f377869386b6a2e636f6d312e7a302e676c622e636c6f7564646e2e636f6d2f636f6e766572742d6a6176612d746f2d6b6f746c696e2d65313432343633333536323633372e706e67.png

IDE将建议你移动新文件到Kotlin文件夹,点击‘Move File’(或者手动完成,假如你没看到这个选项).

 
 
  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中并且开始工作非常简单。

本文链接: http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0413/2716.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值