这是关于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的要求:

 buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.1.3'
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:0.11.91'
}
}

配置build.gradle模块

首先,应用Kotlin插件:

 apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'

然后,添加Kotlin库到你的依赖关系中:

 dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'org.jetbrains.kotlin:kotlin-stdlib:0.11.91'
}

最后,你需要添加Kotlin文件夹,它是在下一步创建的,用来存放源代码的文件夹:

 android {
compileSdkVersion 22
buildToolsVersion "22.0.0" ... sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
}

或者,你可以跳过这一步,使用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的非常相似代码。我建议你去阅读这些代码,直至你理解它们的区别:

 public class MainActivity : ActionBarActivity() {

     override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
} override fun onCreateOptionsMenu(menu: Menu): Boolean {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu)
return true
} override fun onOptionsItemSelected(item: MenuItem): Boolean {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
val id = item.getItemId() //noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true
} return super.onOptionsItemSelected(item)
}
}

主要差异

只要阅读前面的代码,我们就可以看到一些明显的差别。更多的不同会在后续的文章中读到:

  • 使用冒号替代“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

用Kotlin开发Android应用(II):创建新项目的更多相关文章

  1. 使用Kotlin开发Android应用(II):创建新工程

    在基本了解什么是Kotlin以及Kotlin可以做什么之后,接下来就到了配置Android Studio并使用Kotlin开发Android apps的时候了.首次配置Android Studio需要 ...

  2. Android Studio开发第二篇创建新项目

    创建新项目很简单,File-New-New Project,这个没什么好说的跟Eclipse都差不都. 第二步SDK选择,有手机平板还有Wear,TV,汽车Auto,谷歌眼镜等几个种平台,这里就先选择 ...

  3. 用Kotlin开发Android应用(I):介绍

    关于Kotlin,网上已有一些介绍的文章,包括Antonio Leiva的这组blog翻译稿.不过,我还是想跟进它们.翻译它们,以锻炼自己的英文翻译.各位高手发现问题,请及时“拍砖”. 原文题目:Ko ...

  4. 使用Kotlin开发Android应用(I):简单介绍

    使用Kotlin开发Android应用(I):简单介绍 @author ASCE1885的 Github 简书 微博 CSDN 原文链接 Kotlin是一门基于JVM的编程语言.它正成长为Androi ...

  5. 让你的代码量减少3倍!使用kotlin开发Android(一)

    让你的代码量减少3倍!使用kotlin开发Android(一) 创建Kotlin工程 本文同步自博主的私人博客:wing的地方酒馆 写在前面 使用kotlin开发android已经两周多了.得到的好处 ...

  6. android studio: 一个Android studio 3.3.2 无法创建新项目的问题

    记录一个AS无法创建新项目的问题. 今天想写一个测试Demo,点击上面的“Start a new Android Studio Project” ,填写完包名和项目路径后,点“Finish”, AS无 ...

  7. 让你的代码量减少3倍!使用kotlin开发Android(二) --秘笈!扩展函数

    本文承接上一篇文章:让你的代码量减少3倍!使用kotlin开发Android(一) 创建Kotlin工程 本文同步自博主的私人博客wing的地方酒馆 上一节说到,kotlin可以省去getter,se ...

  8. 用Kotlin开发Android的Hello Kotlin!!

    1 创建新项目 android studio 新建一个项目 只有一个空MainActivity 2 安装kotlin file-seeting-plugins-install jetbrains pl ...

  9. 使用Kotlin开发Android应用 - 环境搭建 (1)

    一. 在Android Studio上安装Kotlin插件 按快捷键Command+, -> 在Preferences界面找到Plugins -> 点击Browse repositorie ...

随机推荐

  1. jQuery 2.0.3 源码分析Sizzle引擎 - 词法解析

    声明:本文为原创文章,如需转载,请注明来源并保留原文链接Aaron,谢谢! 浏览器从下载文档到显示页面的过程是个复杂的过程,这里包含了重绘和重排.各家浏览器引擎的工作原理略有差别,但也有一定规则. 简 ...

  2. 分享一个LiteDB做的简单考试系统辅助工具

    凌晨,被安排在公司值班,因为台风“灿鸿”即将登陆,风力太大,办公楼,车间等重要部分需要关注.所以无聊,那就分享一下,今天给朋友临时做的一个小的考试系统辅助工具吧.其实非常小,需求也很简单,但是可以根据 ...

  3. 使用nginx解决跨域问题(flask为例)

    背景 我们单位的架构是在api和js之间架构一个中间层(python编写),以实现后端渲染,登录状态判定,跨域转发api等功能.但是这样一个中间会使前端工程师的工作量乘上两倍,原本js可以直接ajax ...

  4. 使用phpstorm来进行svn提交

    macbook上找一款好用的免费的SVN真是难呀,要么就是非常模糊的画面,本想用Xcode的,但是折腾了一会想打开一个php项目文件夹,不会搞.最后想还是用phpstorm吧.没想到还挺好用的. 首先 ...

  5. html标签属性(attribute)和dom元素的属性(property)

    简介 attribute和property都有属性之意,但对于attribute和property的区分其实并不难.从对象来说,attribute是html文档上标签属性, 而property则是对应 ...

  6. reflow和repaint(摘录自张鑫旭的翻译)

    //正文开始 关于回流(reflows)与重绘(repaints),我已经在twitter和delicious上发布,但是并没有在演讲中提到或是以文章形式发布. 第一次让我开始思考关于回流(reflo ...

  7. 高版本->低版本迁移,低版本客户端连接高版本数据库EXP导出报错EXP-00008,ORA-01455,EXP-00000

    生产环境: 源数据库:RHEL + Oracle 11.2.0.3 目标数据库:HP-UX + Oracle 10.2.0.4   需求:迁移部分表  11.2.0.3-->10.2.0.4,若 ...

  8. ASP.NET的session操作方法总结

    在开发ASP.NET程序时,需要对相关数据进行缓存,缓存较多的主要是用户的身份信息,现提供几个对session操作较为常用的方法: 1.添加session,对设置对应的时间: /// <summ ...

  9. 微信小程序开发初体验

    微信小程序上线几天了,趁着周末补了一下JS,然后今天参照文档和教程写了个小demo 文档地址       教程地址 看文档就看了一点时间,因为以前没接触过JS框架,但是接触过PHP框架= = ,所以理 ...

  10. mybatis入门基础(八)-----查询缓存

    一.什么是查询缓存 mybatis提供查询缓存,用于减轻数据压力,提高数据库性能. mybaits提供一级缓存,和二级缓存. 1.1. 一级缓存是sqlSession级别的缓存.在操作数据库时需要构造 ...