图书前言

前    言

数十年来,Java编程语言一直是编译语言的主导力量。尽管有很多替代方案,但从桌面系统到服务器端再到移动端,Java仍然是许多应用的核心。对于Android移动开发来说尤其如此。

不过最终出现了一位真正的竞争者:Kotlin。它是由JetBrains (www.jetbrains.com)设计并开发的一门现代编程语言。它不是Java,但可以完全与之交互操作。Kotlin十分类似于Java,但它对Java进行了一些很好的改进,对于已经熟悉Java语言的开发者来说它很容易学习。

此外,Kotlin是一门成熟的编程语言。它并不仅限于移动应用的开发,也并非专注于某个特定应用的可视化语言。Kotlin支持:

● 继承、接口、实现以及类的层次结构

● 简单和复杂的控制及流程结构

● Lambda和作用域函数

● 对泛型提供丰富支持的同时仍然保持强类型

● 惯用的开发方法,让Kotlin有了自己的“风格”

虽然Kotlin是一门新语言,但它并不让人感到陌生。这在很大程度上是因为它构建在Java之上,它反思并吸取了成千上万用Java(和其他语言)编写代码的程序员所经历的教训,并使它们成为语言的一部分,强制执行强类型和严格的编译器也许会让用户需要一些时间才能适应,但通常会生成更干净、更安全的代码。

对继承的理解是学习Kotlin的一个重点,因此也是《Kotlin移动和服务器端应用开发》要讲解的一个重点。无论你是使用第三方的包,采用标准的Kotlin库,还是构建自己的程序,都需要对类之间的相互关系、子类化的工作方式以及如何使用抽象类和接口来定义行为并确保实现行为等主题有相当透彻的理解。当你读完《Kotlin移动和服务器端应用开发》后,将非常熟悉类、对象以及继承树的构建。

Kotlin网站(kotlinlang.org)将Kotlin描述为“一门让开发者更快乐的现代编程语言”。有了Kotlin和《Kotlin移动和服务器端应用开发》,你将在Kotlin开发中更快乐、更高效。

本书内容

《Kotlin移动和服务器端应用开发》采用一种全面的方法来教你学习Kotlin编程语言,让你从一个初学者成长为自信、成熟的Kotlin开发者。当阅读完《Kotlin移动和服务器端应用开发》后,你将能在各种环境下(从桌面系统到服务器端再到移动端)编写Kotlin应用。

本书会教我如何用Kotlin编写移动应用吗

会的,但要想用Kotlin构建丰富的移动应用,仅靠《Kotlin移动和服务器端应用开发》还不够。Kotlin是一门丰富的语言,有许多图书主要介绍构建移动应用所需的各种包,但《Kotlin移动和服务器端应用开发》基本上是学习Kotlin的入门级图书。你将了解Kotlin如何处理泛型、继承和Lambda,这些都是移动开发的关键概念。

然后,你可以将这些概念扩展到移动应用开发中。可以轻松地将Android相关软件包的细节补充到你的Kotlin基础知识中,具备Kotlin的基础知识后你将能更有效地使用这些移动软件包。

如果你渴望更迅速地开始你的移动应用开发旅程,不妨再选择一本专注于Kotlin移动应用开发的书,然后在这两本书之间来回切换。阅读完《Kotlin移动和服务器端应用开发》的第1章后,你可以对侧重移动应用开发的书重复同样的过程。你将多次切换上下文,但这样做能够同时学到基础知识和特定的移动开发技术。

《Kotlin移动和服务器端应用开发》涵盖以下内容。

第1章  对象的世界

本章介绍如何安装Kotlin,以及如何编写第一个Kotlin程序。你将从一开始就了解函数,以及如何通过“Hello, World!”应用与命令行交互。还将立即了解Kotlin中对象和类的作用,并进一步了解类、对象,以及对象实例的概念。

第2章  Kotlin很难出错

本章深入探讨Kotlin的一个显著特点:对类型安全的严格立场。你将了解Kotlin的类型,并学习如何为正确的任务选择正确的类型。还将熟悉val和var,以及Kotlin是如何允许更改的。

第3章  Kotlin非常优雅

像任何面向对象的语言一样,使用Kotlin编程的大部分工作都是编写类。本章深入研究Kotlin中的类,并查看所有Kotlin对象的基本构建块。还将覆盖一些函数,并深入了解一些最基本的Kotlin函数:equals()和hashCode()。

第4章  继承很重要

本章开启学习Kotlin中的继承之旅。你将了解Kotlin的构造函数以及相对独特的次构造函数的概念。还将了解更多关于Any类的知识,知道继承对于所有Kotlin开发来说确实是必不可少的,并理解为什么编写好的超类是你要培养的最重要的技能之一。

第5章  List、Set和Map

本章(简要地)从类和继承转移到Kotlin集合。你将在开发中反复使用这些集合类,因此了解Set与Map的区别以及它们与List的区别非常重要。你还将深入研究Kotlin的可变性和不可变性(数据可以更改或不能更改),以及迭代所有类型集合的各种方法。

第6章  Kotlin的未来是泛型

泛型在大多数编程语言中都是一个难点。了解它们需要对语言的构建方式有深刻的理解。本章将深入探讨这些问题,了解为什么使用泛型为你构建可以在各种上下文中使用的类提供了更大的灵活性。本章还将介绍协变、逆变和不变。这些可能不是热门话题,但它们将是正确使用泛型构建程序的关键,也将加深你对继承以及子类的理解。

第7章  控制结构

控制结构是大多数编程语言的基础。本章将详细介绍if/else、when、while和do控制结构。在这一过程中,你将重点控制应用程序或应用程序集的流程,同时学会处理这些结构的语义和机制。

第8章  数据类

本章将介绍数据类,这是另一个非常酷的Kotlin概念。虽然不仅仅针对Kotlin,但是你会发现数据类提供了一个快速而灵活的选项,比老旧的语言更能有效地表示数据。你还将真正推进数据类,超越简单的数据对象,探究构造函数、重写属性,以及使用数据类进行子类化和扩展。

第9章  枚举和密封类,以及更多专业类

本章将介绍枚举,这是一种远胜于字符串常量的方法。你将了解为什么将字符串用于常量值是非常糟糕的,以及枚举如何为你提供更大的灵活性和类型安全性,以及如何使代码更易于编写。你还将从枚举转而学习密封类,这是Kotlin的一个特别炫酷的特性,它可以进一步增强你对枚举概念的理解。你还将深入研究相关的对象和工厂,所有这些都有助于你使用一种健壮的类型安全的编程方法,而以往只能使用字符串类型。

第10章  函数

《Kotlin移动和服务器端应用开发》到此才用一章篇幅重点讨论函数,这似乎有些奇怪。然而,与任何学科中的大多数基础知识一样,你必须一次又一次地重温基础知识,弥补弱点,了解细微差别。本章仅通过函数来实现这一点。你将更深入地了解参数的工作方式,以及Kotlin在处理函数的输入输出数据时提供了多少可选项。

第11章  编写地道的Kotlin代码

像所有编程语言一样,Kotlin提供了一些经验丰富的程序员能反复使用的固定模式。本章讨论了这些模式以及Kotlin的一些习语。刚开始你会以Kotlin规定的样式编写Kotlin程序,慢慢地你会了解你可灵活选择如何让Kotlin程序更符合“你的风格”。

第12章  再次体会继承

本章实际上又是关于继承的介绍。将介绍你已经了解的抽象类和超类,并介绍接口和实现。还将介绍委托模式,这是一种常见的Kotlin模式,它可以帮助你进一步利用继承,能够提供比继承本身更大的灵活性。

第13章  学习Kotlin的下一步

没有一本书能教会你一切,《Kotlin移动和服务器端应用开发》当然也不例外。不过,在你的Kotlin开发之旅中,有一些现成的资源可作为你学习的下一站。本章为你提供了一些新的起点,以帮助你继续了解Kotlin的特定领域。

如何获取源代码

可以通过扫描《Kotlin移动和服务器端应用开发》封底的二维码来下载运行《Kotlin移动和服务器端应用开发》中的示例所需的项目文件。