[译]KotlinConf2017概要
KotlinConf2017概要
kotlin1.2 RC
主题演讲的第一个重要声明是发布Kotlin 1.2 Release Candidate。此版本中的新功能包括对多平台项目的实验支持,允许您在面向JVM和JavaScript的模块之间共享代码,以及多种语言改进,包括对注解中的数组字面值的支持。有关1.2中的新功能的更多信息,请查看Kotlin 1.2 Beta公告博客文章。
现在编译器拒绝使用早期版本的Kotlin 1.2编译的二进制文件; 您将需要使用此版本重新编译它们。使用Kotlin 1.0.x或1.1.x编译的代码当然与本版本的编译器完全兼容。
尽管协程仍被标记为实验功能,但我们想澄清这种状态的确切含义。协程完全可以在生产环境中使用,我们在自己的开发中使用它们,并且我们没有遇到任何重大问题。我们保持实验状态的原因是它使我们有能力迭代设计。请注意,即使我们对API进行了更改,当前的API仍将被支持,即使它被标记为已被弃用,我们将提供必要的迁移工具。根据我们目前的计划,在kotlin1.3中将删除协程的实验状态。
现在是我们要求你帮忙的时候了。尽管我们在内部和JetBrains的其他团队进行了大量的测试,但现实世界的范围远远大于我们所能接触到的。因此,请给Kotlin 1.2 RC一个尝试你自己的项目,让我们知道如果你遇到任何问题。您的帮助对于确保顺利的最终发布至关重要。
告诉大家去试试看
Kotlin / Native iOS支持
我们宣布的下一个大新闻是支持使用Kotlin / Native的iOS开发,作为Kotlin / Native 0.4的一部分发布。这个支持还处于早期阶段,但它仍然在这里,这是我们在所有平台上启用Kotlin开发的重要一步。
为了显示可能的事情,我们写了两个应用程序并发布到App Store:
在spinner示例应用(GitHub)是使用OpenGL构建了一个简单的游戏。它在iOS和Android(play store)上运行,大多数代码在两个版本之间共享。iOS版本有几个附加功能,如游戏中心集成。
该KotlinConf appstore(GitHub上)展示了本次会议的日程安排,与UIKit的内置全机iOS UI。
这两个示例应用都是开源的,您可以使用它们作为模板,在纯Kotlin中构建自己的跨平台移动应用。
Kotlin / Native IDE支持
当然,开发任何语言都需要一个IDE,所以从今天开始,Kotlin / Native有了IDE支持。
我们现在正在为Cion C / C ++ IDE的CLion发布Kotlin / Native插件的初始预览版本。该插件支持CMake作为构建系统。它包括IntelliJ IDEA的Kotlin插件的全套代码编辑功能,以及初步支持项目创建,测试和调试。
要尝试插件,请安装
CLion 2017.3 EAP
并在JetBrains插件列表中搜索“Kotlin / Native”。
在接下来的日子里,我们将发布一个单独的博文,其中包含了关于插件及其功能的更多细节。当然,CLion插件只是Kotlin IDE支持的一小步,敬请关注明年的进一步公告!
Ktor 0.9
服务器端开发也是我们的多平台项目的关键部分。现在我们宣布自己承担这一部分:Ktor的0.9版本,这是一个非常棒的基于异步协程的Web框架,它基于Kotlin建立起来。
Ktor已经在JetBrains和社区内的许多项目中使用,现在我们相信它是构建非常高性能Web应用程序的坚实基础。查看ktor.io 的快速入门指南,尝试一下,让我们知道你的想法,所以我们可以使它更好的1.0版本。
使用React和Kotlin创建现代Web应用程序
对于Web前端开发与科特林,今天最大的新闻是发布官方kotlin-wrappers React.js,以及 create-react-kotlin-app,用于创建使用React.js kotlin现代Web应用程序工具箱。使用create-react-kotlin-app,您可以生成并立即开始在客户端应用程序中工作,而不用担心项目设置和构建配置,使用静态类型语言的优点和JavaScript生态系统的强大功能。
要开始使用,请运行
npm install -g create-react-kotlin-app
并查看入门指南。
多平台项目演示
为了展示我们的多平台项目中的所有内容如何组合在一起,我们已经构建了一个使用我们技术栈的最新技术的应用程序:KotlinConf应用。它由以下组件组成:
后端使用Ktor ;
web端应用使用React.js和Kotlin React包装器;
Android应用使用Anko和Android架构组件;
iOS应用(上面提到)使用UIKit。
后端,web端应用程序和Android应用程序共享代码使用Kotlin多平台项目技术。对于异步编程,所有组件都使用协程。为了在服务器和客户端之间交换数据,我们使用全新的kotlinx.serialization库。
你会发现这些源代码是很宝贵的技术,你也可以在自己的工作中使用。
学习kotlin
随着Kotlin发展,越来越多的人对学习语言感兴趣。为了使这更容易,我们发布了一个新版本的EduTools插件,允许通过解决您最喜爱的IDE中的交互式练习来学习Kotlin。新版本增加了对Android Studio的支持(以前仅支持IntelliJ IDEA),并包含用于构建自己的课程的新UI。
未来方向
至于语言的未来发展,我们此时的主要目标是在Kotlin支持的平台之间实现更好和更广泛的代码重用。我们计划使用相同的API扩展所有平台上可用的库,以包括I / O,网络,序列化,日期处理等。
在编译器中,我们的主要重点是1.3将保持内部变化,而不是外部可见的语言特性。内部更改将实现更好的性能,改进的类型推断,为所有目标平台生成更有效的代码,以及更好地响应IDE插件。我们希望我们仍然可以通过一些不错的新语言功能来改善发行版本,但是我们目前还没有作出任何承诺。
个人公众号让我们kotlin!