java 转swift_Swift开发者的福音-开发Android,java迁移Kotlin以及Kotlin与Swift对比学习....

前言:北京时间的17日23点,谷歌一年一度的I/O开发者大会召开.就在这第一天,谷歌安卓团队大会上宣布Kotlin成为Android的主力开发语言,其实在之前这个语言就已经支持了安卓平台开发,但是直到今天谷歌开发者大会上才宣布对该语言的全面支持和维护,至此之后代码将更加简洁.

最近项目上线,CTO说闲暇之余学习下安卓,无奈重新啃java的语法,这是多么痛的领悟,可是一觉醒来,万物复苏.

作为热衷Swift的iOS开发者,看到Kotlin语法是多么的熟悉.23333.

一、Kotlin的迁移.

1、安装一个Kotlin的插件.

Ps:使用Android Studio开发安卓.听说Android Studio 3.0 预览版已支持 Kotlin了,就可以跳过这一步了.

Android Studio -> Preferences -> Plugins

选择Browse Repositories

c5007d609b53

选择Browse Repositories

搜索Kotlin

c5007d609b53

搜索Kotlin

根据提示重启Android Studio即可.

2、java文件迁移Kotlin

Kotlin插件提供了迁移入口, jetbrains真是良心卖家啊.

打开你的Activity,

选择 code -> Convert Java File to Kotlin File

Ps:和Swift迁移感觉一样,

c5007d609b53

Paste_Image.png

原本java文件的MainActivity:

package com.example.rambolu.testkotlin;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

}

迁移后kt文件的MainActivity:

Ps:迁移后发现眼前的画面似曾相识...

package com.barryzhang.kotlinhello

import android.support.v7.app.AppCompatActivity

import android.os.Bundle

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

}

}

对比swift文件的ViewController:

Ps:真的和Kotlin是孪生姐妹...

import UIKit

class ViewController: UIViewController {

override func viewDidLoad() {

super.viewDidLoad()

// Do any additional setup after loading the view, typically from a nib.

}

override func didReceiveMemoryWarning() {

super.didReceiveMemoryWarning()

// Dispose of any resources that can be recreated.

}

}

感觉当你写惯了swift后,在书写方式上稍微熟悉下可以无缝切入Kotlin.至于android的类库还需要再进一步的学习.

同时Kotlin和java也可以进行混编(有点类似OC和Swift混编),Kotlin可以调用java的类库,同时java也可以调用Kotlin.

3、配置Kotlin.

当你转移后,再次打开Activity,IDE会提醒你Kotlin not configured.此时需要点击右面的configure.

c5007d609b53

Configure

点击后会提醒项目配置Kotlin,是选择选择默认状态(All modules containing Kotlin files: app),以及Kotlin的版本就即可.

c5007d609b53

Kotlin version

Ps: 配置完,其实是在你项目中的build.gradle中添加了Kotlin版本和路径(不是app->build.gradle)

c5007d609b53

版本和路径

以及你的app->build.gradle中添加了Kotlin的依赖

36ab68ba7049b7ae1f44823b023bbb00.png

Kotlin的依赖

配置完,提示需要同步才能正常工作,此时需要点击同步.

c5007d609b53

同步

好了,现在可以运行了.

二、Kotlin与Swift对比学习.

作为官方主推,势必要成为开发的趋势,笔者认为早上车,早体验代码的简洁,同时也提高了开发效率,对于Swift可以更进一步研究FP和POP,而不是还在因为一个property里面的修饰符思考半天.

相比Kotlin,目前版本1.1,有如两年前的Swift,对于比Swift开源还早的语言,看来没有大财主也是无济于事啊,之前谷歌与甲骨文的官司,感觉谷歌也是没有办法,也想加紧更换开发Android的语言,这才导致谷歌宣布Swift的孪生姐妹Kotlin成为主力语言.

对比学习主要也是更直观的对比2种语言的书写方式,以及书写规范,方便掌握,也加深对语言的认识.

常量和变量

Swift

let :常量 ,var :变量

var a : Int = 0

a = 1

let b = 2

Kotlin 也支持类型推导

val :常量 ,var :变量

var a : Int = 1

a = 2

val b = 1

打印Holle world

Swift

print("Hello, world!")

Kotlin

print("Hello, world!") println("Hello, world!") // 和Swift 1.0中使用到的类似

打印嵌套字符串

区别在于一个是,一个是$,以及大小括号

Swift

let name = "rambolu"

let age = 25

print("我的名字: \(name), 我的年龄 : \(age) ")

Kotlin

val name = "rambolu"

val age = 25

println("我的名字: ${name}, 我的年龄 ${age} ")

数组 for in循环

Swift

let arr = ["a", "b", "c", "d"]

for i in 0..

print(" \(i) + \(arr[i])")

}

Kotlin

val arr = arrayOf("a", "b", "c", "d")

val count = arr.count()

for (i in 0..count - 1) {

println("${i} + ${arr[i]}")

}

持续补充

三、后记

Kotlin的成长似乎也伴随着Swift成长,从苹果把Swift的开源,以及成为主力开发语言至今,苹果一直在激进般的前行,现在谷歌也把Kotlin成为Android的主力开发语言,瞬间感觉以后的开发都在降低了开发者的学习成本,代码都更加的简洁,方便其他开发者更快捷的开发app应用.

Kotlin团队也宣称 Kotlin 将在 Android Studio 3.0中直接提供,这也意味着开发Android不再需要安装任何插件和担心兼容性的问题了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值