2017-11-08 09:10:16 kwame211 阅读数 1741
  • 征服Kotlin视频教程

    该课程包括Kotlin开发环境搭建、Kotlin基础知识、类和接口、枚举类、扩展、泛型、函数、lambdas表达式、对象、标准API等。

    8144 人正在学习 去看看 李宁

KotlinConf 大会宣布了 Kotlin 1.2 RC 版,并宣布 Kotlin/Native 已支持用于开发 iOS 应用和 Web 应用开发。

近日,首届官方举办的 Kotlin 专题会议 KotlinConf 正式开幕,来自世界各地约 1200 名与会者齐聚旧金山,在这场盛大的 KotlinConf 大会主题演讲中,Kotlin 的首席语言设计师 Andrey Breslav 公布了一系列与 Kotlin 紧密相关的重大发展成果。接下来,我们不妨关注一下。

Kotlin 1.2 RC

首先宣布了 Kotlin 1.2 RC 版(即 1.2 首个候选发行版)。该版本引入了一系列新功能,包括对多平台项目的实验性支持 —— 允许开发者在针对 JVM 和 JavaScript 的模块之间共享代码,以及多项对语言方面的改进 —— 包括支持在注释中使用数组字面量。更多关于 1.2 版本新功能的内容,可点击此处查看:https://blog.jetbrains.com/kotlin/2017/09/kotlin-1-2-beta-is-out

此外,值得关注的就是协程这个特性了。虽然协程仍然被标记为实验性状态,但官方特意说明了这里“实验性”代表的含义。官方表示协程已经完全准备好用于生产环境,他们也已使用协程进行开发,而且也没发现在使用当中出现任何重大问题。之所以仍保持实验性状态,是为了能够对 Kotlin 继续进行设计迭代。根据目前的计划,Kotlin 1.3 将会删除协程的实验性状态。

Kotlin/Native 对 iOS 开发的支持

另外一个重大消息就是 Kotlin/Native 已支持用于开发 iOS 应用,这也将是 Kotlin/Native 0.4 的特性之一。虽然对 iOS 开发的支持仍处于早期阶段,但确实已经实现了,这是在所有平台上使用 Kotlin 进行开发的重要一步。

官方还特意展示了利用 Kotlin/Native 开发的两款应用(Spinner app (GitHub)、KotlinConf app (GitHub)),它们都可以运行于 iOS 和 Android 平台。Android 和 iOS 平台共享了不少代码,其中包括大多数图形处理、声音播放和用户输入响应代码。

两款应用都已开源,你可以将它们作为模板,仅使用 Kotlin 构建自己的跨平台移动应用。点此此处可了解其中一款应用:https://www.oschina.net/p/kotlinconf-spinner

IDE 对 Kotlin/Native 的支持

Kotlin/Native 也将迎来 IDE 的支持。官方表示首先将在 C/C++ IDE CLion 中试用该功能,目前正在发布一个名为 Kotlin/Native plugin for CLion 的插件,该插件支持使用 CMake 作为构建系统。其中包含来自 IntelliJ IDEA 的 Kotlin 插件中全部代码编辑功能集,同时初步支持项目创建、测试与调试等操作。

使用 React 和 Kotlin 创建现代 Web 应用

对于使用 Kotlin 进行 Web 前端开发的开发者,Andrey Breslav 在大会上还公布了另外一个重大消息 —— 正式发布了针对 React.js 的官方 Kotlin 封装工具。此外,还有一个名为 create-react-kotlin-app 的工具集 —— 通过 Kotlin 使用 React.js 创建现代 Web 应用。

使用 create-react-kotlin-app,可让开发者无需费心于项目设置和配置构建这些工作,能专注于快速开始客户端应用开发,同时体会到静态类型语言的优势以及由 JavaScript 生态系统带来的强大配套资源。详情点此了解:https://github.com/JetBrains/create-react-kotlin-app

未来的发展方向

Kotlin 语言的未来发展方向主要是在 Kotlin 支持的平台之间实现更好、更广泛的代码重用。官方表示计划通过使用同一 API 以扩展全部平台上的可用库资源集合,其中涵盖 I/O、网络、序列化以及日期处理等。

编译器方面,1.3 版本仍集中关注内部层面的变更,而不是外部可见的语言特性。内部的改变能提高性能、改进类型推断、为所有目标平台生成更高效的代码,以及带来更好的 IDE 插件响应能力。

关于 Kotlin/Native

说了这么多,Kotlin/Native 到底是什么?Kotlin/Native 能将 Kotlin 编译成机器码,目前还处于技术预览版阶段,离商用估计还需要至少一年的时间。

Kotlin/Native 不是 Jni 的概念,它不仅仅是要与底层代码比如 C、C++ 交互,而且还要绕过 JVM 直接编译成机器码供系统运行。这说明了什么?Kotlin 准备扔掉 Java 这根拐杖了。

第一次看到 Native 这个名字或许会很自然地想到 Jni,Kotlin 跑在 JVM 上面,使用 Jni 与底层代码交互。不过详细深入研究后可以发现,Kotlin 开发团队的野心不可小觑,Java 诞生这么多年,也没有涉足过编译成除 Java 虚拟机字节码以外的字节码的事情,Kotlin 才这么年轻,不得不说十分具有革命性。

所以如果有人再问你什么是 Kotlin,你应该回答,Kotlin 是一门很厉害的静态语言(而不是之前常说的 Kotlin 是一门运行在 JVM 之上的静态语言)。反正你能想到的,Kotlin 的开发团队都想干。

时钟拨回到到五个月前,2017 年 5 月 17 日 Google I/O 大会第一天,谷歌宣布 Kotlin 成为 Android 开发的官方支持语言。有了 JetBrains 和 Google 的背书,自此,对于“Kotlin 即将取代 Java ”的声音从未停止过。曾经,CSDN 也曾发表过一篇题为“5 个月策反,Kotlin 将取代 Java 成 Android 开发第一语言?”的文章,文中提到,Realm 公司调查报告给出的预测表示,“到 2018 年底,在 Android 开发领域,Kotlin 将超越 Java,成为开发 Android 应用的第一语言。”

不过,再看回在 KotlinConf 大会中官方已公布的关于 Kotlin 的发展成果和未来方向,Kotlin 的目标可能并不是撼动常青藤 Java 在 Android 开发领域中的地位,他们的征途或许是星辰大海。

2018-06-09 09:22:09 xiangzhihong8 阅读数 4932
  • 征服Kotlin视频教程

    该课程包括Kotlin开发环境搭建、Kotlin基础知识、类和接口、枚举类、扩展、泛型、函数、lambdas表达式、对象、标准API等。

    8144 人正在学习 去看看 李宁

AppCode简介

AppCode是JetBrains公司出品的用于开发Mac OS X以及iOS应用程序的集成开发环境,能够支持Xcode项目的运行和调试功能,并为Swift和Objective-C提供广泛的技术支持。目前,AppCode只能运行在Mac OS X操作系统环境下,作为XCode的高级替代品,AppCode继承了IDEA的诸多优良特性,是Mac OS X和iOS应用程序开发的又一利器。
Kotlin Native是一种能够将Kotlin源代码编译成不需要任何虚拟机支持的二进制技术,编译后的二进制数据可以直接运行在目标平台上。Kotlin Native在0.4版本引入了对Objective-C API的调用支持,并引入了对WebAssembly的实验性支持。要想使用Kotlin来开发iOS应用,需要先下载最新版的AppCode(即AppCode 2018.1.1及以上版本),然后安装【Kotlin Native for AppCode】插件。
安装的步骤为,依次选择【AppCode】→【Preferences】→【Plugins】打开JetBrains的插件页面,然后搜索【Kotlin Native for AppCode】并安装,如图16-6所示。
这里写图片描述

创建Kotlin Native项目

Kotlin Native使用Gradle作为默认构建工具,想要在Xcode中编译Kotlin Native项目,需要在项目中添加相关的运行脚本,该脚本调用Gradle来构建Kotlin Native工程。当然,也可以借助一些第三方的IDE,如AppCode,使用AppCode之前需要先安装【Kotlin Native for AppCode】插件。
启动AppCode,依次选择【Kotlin/Native】→【Single View APP with a Kotlin/Native Framwork】即可创建iOS应用程序,使用Kotlin/Native方式创建的iOS项目支持使用Kotlin语言来编写iOS应用程序,如图16-7所示。
这里写图片描述
等待项目构建完成,可以看到,使用Kotlin/Native方式创建的iOS项目的目录结构如图16-8所示。
这里写图片描述
相比使用Xcode创建的原生iOS项目而言,使用Kotlin/Native方式创建的iOS项目显然多一些配置文件(如Frameworks和KotlinNativeFramework)。文件的具体含义如下:

  • Projects:主要用于存放Mac软件开发的可执行文件等,iOS应用开发很少用到这个文件;
  • Frameworks:主要用于存放项目依赖的一些系统库和第三方库;
  • Project:此目录用于存放与项目相关的源码,也是iOS应用开发的核心组成部分;
  • KotlinNativeFramework:用于存放和KotlinNative相关的库。

此时,只需要点击【Run】按钮即可在iPhone模拟器或者真机中启动应用程序。不过,此时的程序还没有实现任何的功能,为了在项目中使用Kotlin来编写iOS应用程序,可以在Kotlin Native项目的Project文件中创建一个Kotlin的文件目录(如src/main/kotlin),然后添加一个ViewController类,如图16-9所示。
这里写图片描述
需要注意的是,使用AppCode创建的Kotlin Native项目默认是没有引入iOS的UIKit.framework系统库的,所以在使用iOS的相关库之前需要先导入相应的库。
ViewController类的源码如下:

import kotlinx.cinterop.ExportObjCClass
import kotlinx.cinterop.ObjCAction
import kotlinx.cinterop.ObjCOutlet
import platform.Foundation.NSCoder
import platform.UIKit.*
import kotlinx.cinterop.initBy

@ExportObjCClass
class ViewController: UIViewController {

    constructor(aDecode:NSCoder): super(aDecode)
    override fun initWithCoder(aDecode:NSCoder) =initBy(ViewController(aDecode))

    @ObjCOutlet
    lateinit var label: UILabel

    @ObjCOutlet
    lateinit var textField: UITextField

    @ObjCOutlet
    lateinit var button:UIButton

    @ObjCAction
    fun click(){
        label.text="Hello,${textFiled.text}"
    }
}

由于开发者自己定义的文件目录未被标记为源根目录,是不会被编译系统识别的,所以需要将“src/main/kotlin”目录标记为项目源码目录才能够被系统识别。

Kotlin Native测试

众所周知,AppCode本身就是基于IntelliJ IDEA的Kotlin插件,所以很多支持Kotlin的功能对于Kotlin/Native也是同样支持的(如代码检查、重构等操作)。
这里写图片描述
同时,AppCode插件也支持使用kotlin.test框架来编写测试代码。在项目名上右键,依次选中【Project Settings…】→【项目名】,然后点击左下角的添加按钮,如图16-11所示。
这里写图片描述
等待项目构建完成,然后选中【edit configurations…】打开项目配置面板并添加“Kotlin/Native test”选项来添加测试用例,如图16-12所示。
这里写图片描述
当然,除了上面介绍的功能外,Kotlin Native还支持调用Objective-C标准 API,而且也为此提供了非常便捷的阅读API文档的方法,可以说Kotlin Native是Kotlin多平台的真正魅力之所在。

2018-09-14 19:30:11 sk719887916 阅读数 2614
  • 征服Kotlin视频教程

    该课程包括Kotlin开发环境搭建、Kotlin基础知识、类和接口、枚举类、扩展、泛型、函数、lambdas表达式、对象、标准API等。

    8144 人正在学习 去看看 李宁

原文:出自我的公众号开发者技术前线 :Kotlin真的值得学习吗?
写在2017年11月

KotlinConf 大会宣布了 Kotlin 1.2 RC 版,并宣布 Kotlin/Native 已支持用于开发 iOS 应用和 Web 应用开发。

首届官方举办的 Kotlin 专题会议 KotlinConf 于5号在旧金山正式开幕,Kotlin 的首席语言设计师 Andrey Breslav 公布了一系列与 Kotlin 的改进,并对外称以支持iOS和Native。

在Java1.8发布之后,在Java这么强大的环境下,为何kotlin被谷歌这么器重。我们不妨看看本次大会kotlin的重要改进。

Kotlin 1.2

首先宣布了 Kotlin 1.2 RC 版(即 1.2 首个候选发行版)。该版本引入了一系列新功能,包括对多平台项目的实验性支持 —— 允许开发者在针对 JVM 和 JavaScript 的模块之间共享代码,以及多项对语言方面的改进 —— 包括支持在注释中使用数组字面量。更多关于 1.2 版本新功能的内容,点此查看。

Kotlin/Native 支持 iOS

另一个重大消息就是 Kotlin/Native 已支持用于开发 iOS 应用,这也将是 Kotlin/Native 0.4 的特性之一。虽然对 iOS 开发的支持仍处于早期阶段,但确实已经实现了,这是在所有平台上使用 Kotlin 进行开发的重要一步。

官方还特意展示了利用 Kotlin/Native 开发的两款应用(Spinner app (GitHub)、KotlinConf app (GitHub)),它们都可以运行于 iOS 和 Android 平台。Android 和 iOS 平台共享了不少代码,其中包括大多数图形处理、声音播放和用户输入响应代码。

使用 React 和 Kotlin 创建现代 Web 应用

对于使用 Kotlin 进行 Web 前端开发的开发者,Andrey Breslav 在大会上还公布了另外一个重大消息 —— 正式发布了针对 React.js 的官方 Kotlin 封装工具。此外,还有一个名为 create-react-kotlin-app 的工具集 —— 通过 Kotlin 使用 React.js 创建现代 Web 应用。

使用 create-react-kotlin-app,可让开发者无需费心于项目设置和配置构建这些工作,能专注于快速开始客户端应用开发,同时体会到静态类型语言的优势以及由 JavaScript 生态系统带来的强大配套资源。详情点此了解。

IDE 对 Kotlin/Native 的支持

Kotlin/Native 也将迎来 IDE 的支持。官方表示首先将在 C/C++ IDE CLion 中试用该功能,目前正在发布一个名为 Kotlin/Native plugin for CLion 的插件,该插件支持使用 CMake 作为构建系统。其中包含来自 IntelliJ IDEA 的 Kotlin 插件中全部代码编辑功能集,同时初步支持项目创建、测试与调试等操作。

Kotlin真的值得学习吗?

目睹了以上Kotlin的一些新特性,我想目前,有不少的Android程序员已经用起了kotlin, 但是kotlin真的有春天吗? 尽管官方也表示 Kotlin 语言的未来发展方向主要是在 Kotlin 支持的平台之间实现更好、更广泛的代码重用,但我还是没用。我们不妨回想下iOS推出的swfit,发布到现在,时间已过去6年,swfit有多少人记得?记得swift是当年iOS程序员热衷的时代,说好的混编呢?我依然看见同事用OC开发,一套OC吃遍天下!

去年FackBook发布跨平台技术RN, 成为当时讨论最火的技术之一,如今百度等一线公司宣布其项目禁止使用RN技术, 除了利益和版权,我想一部分原因也是它并不是理想的跨平台方案。然而JS依旧在成了最受欢迎开发语言!成了前端和移动端公认低成本,兼容最强的热更新方案。

我认为kotlin被热炒的很大一部分原因是Google小姐姐 和Apple,Facebook抢占跨平台市场,无论是哪家公司,多会有一个和对手竞争的领域布局,话说Android已成为了世界第一大系统,却没有一个能持支持跨平台的技术主角,确实有点说不过去。2个月前jake大神也被谷歌挖走,jake也表示以后的主要工作是优化android系统和提供更好更便捷的开发模式。

无论大家怎么看待kotlin, 我个人认为:Java的强大足够让你在以后的工作中保持较好的竞争力,如果你真心有时间去学习kotlin,我建议开发者不妨去关注下python。人工智能会让你在以后的竞争力中多一个机会。
历史推荐

Kotlin真的值得学习吗?
弃坑 React-Native,开启入坑 Flutter 之路

第一时间获取技术文章请关注微信公众号!

开发者技术前线

2017-11-30 18:00:00 cpongo4 阅读数 14
  • 征服Kotlin视频教程

    该课程包括Kotlin开发环境搭建、Kotlin基础知识、类和接口、枚举类、扩展、泛型、函数、lambdas表达式、对象、标准API等。

    8144 人正在学习 去看看 李宁

根据JetBrains技术主管Nikolay Igotti的介绍,Kotlin/Native 0.4已经可用于为iOS和macOS开发原生应用。此外该版本还为WebAssembly平台提供了实验性支持。

\\

Kotlin/Native对iOS/macOS开发的支持,关键在于实现了与Objective-C的互操作性。JetBrains目前已经发布了一个非常简单的演示应用,该应用使用Kotlin编写,已发布至Apple StoreGoogle Play

\\

下列代码片段展示了访问iOS框架的方式:

\\
\import kotlinx.cinterop.*\import platform.Foundation.*\import platform.objc.*\import platform.osx.*\fun readResource(resourceName: String): ByteArray {\    val filePath = NSBundle.mainBundle.pathForResource(resourceName, ofType = null)\  val fileData = NSData.dataWithContentsOfFile(filePath!!)\  ?: throw Error(\"failed reading resource $resourceName\")\  return fileData.bytes!!.readBytes(fileData.length.toInt())\}\
\\

这一切都是通过新的platform实现的,并通过库实现了对底层操作系统接口的访问。借此便可以使用提供了POSIX OS层的平台执行各类操作,如调用fopenfread等。以前与底层平台的互操作则需要专门生成的Interop Stub。

\\

新版的另一个新功能对象固定(Object pinning),主要是为了简化通过C API使用Kotlin对象的方式,借此可以确保通过C API消费的对象能够锁定到内存中。

\\

Kotlin/Native现已开始支持WebAssembly,因此可以通过Kotlin开发基于浏览器的应用。但根据Igotti的介绍,由于浏览器支持方面的局限,这种支持目前依然是实验性质的。

\\

在工具方面,调试功能现已支持在运行时检查大部分变量。此外同样重要的是,还通过一个新的插件让CLion可以支持Kotlin/Native

\\

Kotlin/Native是Kotlin的最新成果,可用于将最初仅仅基于JVM的语言Kotlin编译为无需虚拟机即可运行的原生库。因此该技术非常适合诸如iOS等平台以及嵌入式设备等不能或者无法运行虚拟机的环境。Kotlin/Native目前已经可以支持Windows、Linux、macOS、iOS、Android和WebAssembly。

\\

阅读英文原文Kotlin Native Adds Objective-C Interop, WebAssembly Support

2017-10-19 12:24:32 qq_34908107 阅读数 196
  • 征服Kotlin视频教程

    该课程包括Kotlin开发环境搭建、Kotlin基础知识、类和接口、枚举类、扩展、泛型、函数、lambdas表达式、对象、标准API等。

    8144 人正在学习 去看看 李宁

1.编程电子书
安卓干货铺-IT编程资源第三波!(史上最全资源17种)
2.Android
安卓干货铺-IT编程资源第三波!(史上最全资源17种)
3.Hadoop
安卓干货铺-IT编程资源第三波!(史上最全资源17种)
4.c#
安卓干货铺-IT编程资源第三波!(史上最全资源17种)
5.Juery
安卓干货铺-IT编程资源第三波!(史上最全资源17种)
6.IOS
安卓干货铺-IT编程资源第三波!(史上最全资源17种)
7.R语言
用于统计分析、绘图的语言.对数学感兴趣的可以学一学。
安卓干货铺-IT编程资源第三波!(史上最全资源17种)
8.Kotlin
安卓干货铺-IT编程资源第三波!(史上最全资源17种)
9.C/C++
安卓干货铺-IT编程资源第三波!(史上最全资源17种)
10**.java**
安卓干货铺-IT编程资源第三波!(史上最全资源17种)
11**.JavaScript_DOM**
安卓干货铺-IT编程资源第三波!(史上最全资源17种)
12.Python
安卓干货铺-IT编程资源第三波!(史上最全资源17种)
13.*某马机构JAVAEE*
安卓干货铺-IT编程资源第三波!(史上最全资源17种)
14.数据结构与算法
[图片上传中。。。(14)]
15.架构师干货
安卓干货铺-IT编程资源第三波!(史上最全资源17种)
16.HTML
安卓干货铺-IT编程资源第三波!(史上最全资源17种)
17**.记忆1000桩,110数字编码**
安卓干货铺-IT编程资源第三波!(史上最全资源17种)
安卓干货铺-IT编程资源第三波!(史上最全资源17种)
记忆1000桩,110数字编码*获取方式:加我微信备注一下 “记忆”*

获取方式:关注我的微信公众号:安卓干货铺 回复对应的关键词

没有更多推荐了,返回首页