• 用Kotlin开发Android应用(II):创建新项目


    这是关于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

     

     

  • 相关阅读:
    Linux 基本权限管理
    javaweb期末项目-stage1-part2-UML设计
    javaweb期末项目-项目结构
    javaweb期末项目-stage1-part1-需求分析(Requirements analysis)
    Data type
    Backup &recovery备份和还原
    CDI services--Scope(生命周期)&&EL.(Sp El)
    CDI services--Event(事件)
    CentOS 8.2上安装部署MongoDB 4.4
    CentOS8.2 安装部署squid代理服务器
  • 原文地址:https://www.cnblogs.com/figozhg/p/4983919.html
Copyright © 2020-2023  润新知