你谈见解我送书:《Kotlin 程序开发入门精要》技术书籍大放送
Posted OSC开源社区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你谈见解我送书:《Kotlin 程序开发入门精要》技术书籍大放送相关的知识,希望对你有一定的参考价值。
扫描二维码或点击图片进入西安源创会报名
开源中国联合人民邮电出版社异步社区给粉丝送福利啦!!本次干货:《Kotlin 程序开发入门精要》技术书籍。只要试读第一章内容《Kotlin 开发环境搭建》,11 月 10 日前在评论区写下你的见解,我们将在评论用户中抽出 5 位幸运用户送出精美图书一本!
简介:本书第一部分主要介绍了 Kotlin 的基础知识、语法以及大量的“语法糖”,如搭建Kotlin开发环境、数据类型、控制流、类、对象、接口、扩展、委托、Lambda表达式、操作符重载等。由于 Kotlin 可以调用 JDK 中的 API,所以在使用 Kotlin 开发 android App 的过程中,很多都是调用 JDK 的 API 实现的,但开发语言使用的是 Kotlin。因此,第二部分将详细介绍了用 Kotlin 开发 Android App 需要掌握的核心知识,如 Activity、组件、布局、流文件、SQLite 数据库、网络等技术。第三部分会给出一个完整的案例:欧瑞天气。通过这个项目,可以让读者了解利用 Kotlin 开发 Android App 的全过程。
Kotlin 开发环境搭建
尽管Kotlin不是刚刚面世的编程语言,但以前一直未受到足够的重视,直到Google公司在2017年的I/O大会上宣布Kotlin成为开发Android App的一级语言后,Kotlin才迅速“走红”。那么Kotlin到底有什么优于Java的地方呢?以至于让互联网巨头Google公司如此垂青。如果各位读者想知道原因,那就继续阅读本章后面的内容吧!在这一章里会对Kotlin进行全面的介绍,包括Kotlin迅速“蹿红”的原因、如何安装Kotlin,以及Kotlin到底能做什么。
1.1 Kotlin 概述
本节主要介绍什么是Kotlin,以及Kotlin较Java到底有什么特别之处,足以让Google公司将其选为开发Android App的一级语言。
1.1.1 Kotlin 是什么
可能很多读者看到Kotlin这个单词会感到很陌生,这很正常。就和2007年以前一样,在苹果公司推出iPhone以及相应的开发工具之前,Objective-C就鲜为人知,至少在国内是这样的。上面提到的Objective-C是一种编程语言,而本书的主题是Kotlin,那么首先要回答的是,Kotlin到底是什么呢?没错,Kotlin和Objective-C一样,是一种编程语言。
Kotlin是由JetBrains创建的基于JVM的编程语言,那么JetBrains又是什么呢?我相信很多Java程序员使用过IntelliJ IDEA,这个非常棒的Java IDE(集成开发环境)就是JetBrains的杰作。如果你没听过或没用过IntelliJ IDE,那么也没有太大关系。相信阅读本书的读者或多或少都了解一些Android的知识,Android官方推荐的IDE是Android Studio,简称AS。这个IDE就是基于IntelliJ IDEA社区版开发的。
JetBrains旗下不只有IntelliJ IDEA一款产品,Kotlin也是JetBrains旗下的一款产品,一种编程语言。这种编程语言运行在JVM上,也就是Kotlin编译器会将Kotlin源代码编译成Java Byte Code(Java字节码),可以直接运行在JVM上。从这一点看出,在技术层面,Java和Kotlin是同一个级别的,都以Java Byte Code形式运行在JVM上。
当然,Kotlin编译器还可以将Kotlin源代码编译生成javascript代码,以便在没有JVM的情况下运行。在未来,Kotlin编译器还可以将Kotlin源代码编译生成本地代码,完全脱离任何虚拟机运行,也就是说,Kotlin相对Java的优势之一是多目标编译语言,而Java只能编译生成Java Byte Code(.class文件)。
1.1.2 为什么 Kotlin 突然成为热门
尽管Kotlin已经推出有很长一段时间了,但并不怎么出名,可能是因为JetBrains对它的推广力度不够,加之现在的编程语言实在太多了,所以Kotlin就像一块石头扔进了大海,不见了踪影。
那么为什么现在Kotlin突然成为热门了呢?原因也很简单,Kotlin可以开发Android App,而且被Google公司选为开发Android App的一级语言,即在Android Studio 3.0及以上版本中会支持利用Kotlin语言开发Android App。这也就意味着,到目前为止,开发Android 本地App可以使用Java和Kotlin两种编程语言。这就很像开发ios App的场景了,可以使用Objective-C和Swift两种语言开发iOS App。因此,很多人把Kotlin比作Android世界的Swift。而且Kotlin和Swift的确都是很棒的编程语言,都加入了很多“语法糖”,可以大幅提高程序开发的效率。
1.1.3 Kotlin 相对于Java 有哪些优势
可能很多读者会问,既然有了Java,为什么Google公司还要选择Kotlin来开发Android App呢?Kotlin相比Java有哪些优势呢?
在这一节我们来简单了解一下Kotlin的特点,通过这些介绍,我们可以体会到Kotlin的优势所在。
更容易学习:Kotlin是一门包含很多函数式编程思想的面向对象编程语言,而且相比Scala语言更容易学习。
轻量级:相比其他编程语言,Kotlin函数库更小。由于Android存在65K方法数限制,使得这一点显得更为重要。虽然使用ProGuard或者打包成多个dex能够解决这个问题,但是所有这些解决方案都会提高复杂性,并增加调试的时间。Kotlin函数库方法数小于7000个,相当于support-v4(Android 1.6)的大小。
高度可互操作性:Kotlin可以和其他Java类库友好且简单地进行互操作。Kotlin团队在开发这门新语言时正是秉承了这个中心思想。他们希望可以使用Kotlin继续开发现有的使用Java语言编写的工程,而不是重写所有代码。因此,Kotlin需要能够和Java很好地进行互操作。
非常好地集成Android Studio及Gradle:Kotlin有一个专门用于Android Studio的插件,以及另一个专门用于Gradle的插件。而且即将推出的Android Studio 3.0已经集成了Kotlin,因此在Android工程中开始使用Kotlin并不困难。
当然,Kotlin还有很多语法层面的特性,如数据模型类、空类型安全、扩展函数等,这些技术将会在后面的章节介绍中展开。
1.1.4 Kotlin 能做什么
从前面的内容可以知道,Kotlin可以用来开发Android App,那么除了Android App,Kotlin还可以做什么呢?在本节我们就来一窥究竟。
1.服务端开发
既然Kotlin是基于JVM的编程语言,那么自然而然就可以使用所有基于JVM的服务端框架。下面是几个Kotlin官方文档推荐的框架。
Spring:一种开源框架,是为了解决企业应用程序开发复杂性问题而创建的。从Spring 5开始,Spring就已经支持Kotlin的新特性了,并可以使用Spring在线生成器(https://start.spring.io)生成基于Kotlin的工程。
Vert.x:用于建立基于JVM的响应式Web应用的框架。
Ktor:由JetBrains发布的一款基于Kotlin的本地Web框架
kotlinx.html:是一种DSL(领域专用语言),用于在Web应用中生成HTML。Kotlin服务端框架和kotlinx.html的关系就像JSP和FreeMarker的关系一样,FreeMarker是基于Java的模板引擎。使用FreeMarker,可以不依赖于HTML或其他技术,可以根据需要生成HTML或其他东西,也就是一种与具体渲染技术无关的技术。
2.以 JavaScript 方式运行
Kotlin提供了生成JavaScript源代码的能力,也就是将Kotlin代码直接转换为JavaScript代码。目前,支持ECMAScript 5.1标准,未来会支持ECMAScript 6。
注意,如果将Kotlin代码转换为JavaScript代码,在Kotlin代码中只能包含Kotlin标准库,不能包含任何JDK API以及任何第三方的Java Library API,任何不属于Kotlin本身(Kotlin语句和标准库)的部分在转换的过程中将被忽略。
3.开发 Android App
这一部分在上文提到过,Kotlin和Java一样,都可以开发Android App,而且Kotlin和Java源代码文件可以在同一个工程中,可以联合进行调试。
尽管Kotlin能做很多事(Java能做的,Kotlin都能做),但本书的主要关注点是开发Android App,因此,在本书后续部分将着重介绍如何利用Kotlin开发Android App。
1.2 在线运行 Kotlin 代码
可能很多读者使用过Java或其他编程语言,学习这些技术的第一步,就是配置,一大堆的配置,这让很多初学者摸不着头脑,尤其是在没人指导的情况下更是如此。不过这一切在Kotlin这里就终结了,因为运行和测试Kotlin代码,根本就不需要进行配置,Kotlin官方提供了一个在线运行和测试Kotlin代码的环境,可以运行Kotlin语句和标准库。
想要了解更多有关 Kotlin 程序开发的知识吗?赶紧在评论区写下你的见解吧,可能获奖的就是你哦!
以上是关于你谈见解我送书:《Kotlin 程序开发入门精要》技术书籍大放送的主要内容,如果未能解决你的问题,请参考以下文章