1.3 用Kotlin能开发什么

移动端的应用开发是当前IT开发的主流,但是PC端的开发仍然有很大的市场,这是一个IT多彩的时代。能够开发哪种应用,是影响用户是否选择这门开发语言的一个关键要素。令人欣慰的是,常规的这些应用开发Kotlin都支持。

1.3.1 服务器端程序

服务器端应用程序是指运行在服务器上,根据前端发送的请求来执行,或者调用数据库数据,或者调用其他服务,最终将结果反馈给请求者。根据应用目的的不同,可以简单分成如下三大类。

●服务类应用程序,包括基于SOAP协议的WebService和基于HTTP协议的Restful。

●数据库类应用程序,包括各种业务逻辑开发、实体类的开发。

●连接类应用程序,包括负载处理、传输处理等。

以上应用程序都可以使用Kotlin进行开发。下面是用于服务器端开发的框架,读者在这里稍作了解,以后可根据工作需要重点关注。

●Ktor是由JetBrains公司构建的Kotlin原生Web框架,具有高可伸缩性,并提供易于使用、符合习惯用法的API。

●Spring利用Kotlin的语言功能,提供更简洁的API,从5.0版本开始,在线项目生成器允许用Kotlin快速生成一个新项目。

●Vert.x是在JVM上构建响应式Web应用程序的框架,为Kotlin提供了专门支持,包括完整的文档。

●kotlinx.html是可以在Web应用程序中构建HTML的DSL,可以作为传统模板系统(如JSP和FreeMarker)的替代品。

●持久化的可用选项包括直接JDBC访问、JPA和通过Java驱动程序使用NoSQL数据库。对于JPA,kotlin-jpa编译器插件使Kotlin编译的类符合框架的要求。

1.3.2 网页应用

网页应用是指运行在浏览器环境中,靠浏览器解释执行的应用。Kotlin可以编译成JavaScript代码,并且是100%兼容的。目前的实现目标是ECMAScript 5.1,也有最终目标为ECMAScript 2015的计划。

当用户选择JavaScript目标时,作为项目一部分的任何Kotlin代码及Kotlin附带的标准库都会转换为JavaScript。但是,这不包括使用的JDK和任何JVM、Java框架或库。任何不是 Kotlin的文件都会在编译期间被忽略掉,编译时会做如下转换。

●创建面向客户端JavaScript的Kotlin代码。

与DOM元素交互。Kotlin提供了一系列静态类型的接口与文档对象模型(Document Object Model,DOM)交互,允许创建和更新DOM元素。

与图形(如WebGL)交互。用户可以使用Kotlin在网页上用WebGL创建图形元素。

●创建面向服务器端JavaScript的Kotlin代码。

使用服务器端技术。用户可以使用Kotlin与服务器端JavaScript(如node.js)进行交互。

1.3.3 本地执行程序

这是早期的、最传统的应用程序,它可以是C/S模式的程序,也可以是单机程序。这类应用依赖操作系统的环境,需要JVM的支持。

1.3.4 Android应用

Android应用是Kotlin开发的重点,也是目前Kotlin最成熟的应用。Kotlin与JDK 6完全兼容,保证Kotlin应用程序可以在较旧的Android设备上运行而无任何问题。Kotlin工具在Android Studio 中完全支持,并且兼容 Android 构建系统。允许在 Kotlin 应用程序中使用所有现有的Android库,包括注解处理。Kotlin团队为Android开发提供了一套超越标准语言功能的工具。

●Kotlin Android扩展是一个编译器扩展,可以让用户摆脱代码中的findViewById()调用,并将其替换为合成的编译器生成的属性。

●Anko是一个围绕Android API的、Kotlin友好的提供包装器的库,以及一个可以用 Kotlin代码替换布局.xml文件的DSL。