零、前言

"The purpose of education is to make good human beings with skills and expertise. Real education enhances the dignity of a human being and increases his or her self-respect. If only the real sense of education could be realized by each individual and carried forward in every field of human activity, the world will be so much a better place to live in." — Dr. APJ Abdul Kalam

每天都有超过 20 亿的安卓用户活跃,全球数十亿的数据提供了一个真正的改变机会。直到最近,电话还只是一种语音通信设备,现在已经不再是电话了。为安卓设备的下一个十亿用户赋能将在未来发挥重要作用。

技术的目的是赋予人类能力,强大设备的出现为创新提供了机会,并可以通过技术改善人们的生活。无论是为农民打造的提供天气或农作物价格有用信息的应用,还是为有特殊需求的儿童打造的表达自我的应用,抑或是为经济困难的女性打造的经营小型家庭企业的应用,未来的机会都非常多,非常令人兴奋。

这本书旨在让那些想要探索安卓的力量和体验并享受构建安卓应用之旅的开发者。这些章节的组织是为了让新的开发人员能够理解并从基础开始,或者如果你是一个有经验的开发人员,那么你可以走在前面并探索 Kotlin 的力量。

为了让这个应用开发之旅变得更加有趣和容易,谷歌增加了 Kotlin 作为安卓应用开发的官方语言之一。Kotlin 富有表现力,简洁有力。它还确保了与现有安卓语言(如 Java 和运行时)的无缝互操作性。

这本书是给谁的

这本书对任何刚开始安卓应用开发的人都很有用。学习安卓应用开发从未如此令人兴奋,因为我们有不止一种选择语言得到了谷歌的官方支持。这本书涵盖了使用 Kotlin 开发安卓应用所需的所有细节,一步一个脚印,让读者在进步的同时体验旅程。

这本书也肯定会帮助那些已经在使用 Java 进行 Android 应用开发并试图切换到 Kotlin 或评估 Kotlin 易用性的人。精通 Java 的安卓应用开发人员会发现 Java 和 Kotlin 之间的代码比较非常有用,并且能够欣赏 Kotlin 的力量。

这本书涵盖了什么

这本书的目的是确保使用 Java 的高级安卓应用开发人员和那些开始学习安卓应用开发的人都喜欢阅读这本书。

第一章安卓开发设置,提供了安卓应用开发设置系统的分步信息,列出了入门所需的所有细节。

第 2 章为 Kotlin 配置环境,详细说明了为 Kotlin 配置环境所需的步骤。尽管最新且稳定的 Android Studio 版本提供了开箱即用的 Kotlin 支持,但本章中的信息将帮助您配置您选择的开发 IDE。

第 3 章数据类型、变量和常量,介绍并讨论了 Kotlin 语言构造的细节,如数据类型、变量和常量。

第 4 章类和对象,通过提供关于类和对象的信息并解释如何定义和处理它们,进一步加强了对语言结构的讨论。

第 5 章型式检查和零安全讨论了 Kotlin 型式检查和零安全的显著特征。Kotlin 的设计完全消除了空引用。

第 6 章函数和 Lambdas ,提供了定义函数并在我们的程序中使用它的信息。本章还讨论了 Lambdas,并提供了它们的使用信息。

第 7 章开发你的基于位置的警报,讨论了谷歌基于位置的服务的基础,使用谷歌地图应用编程接口,以及在地图上定制标记。

第 8 章与谷歌的定位服务合作,展示了如何使用基于位置的服务构建应用,并解释了如何构建我们自己的基于位置的警报。

第九章连接外部世界——联网,涵盖了联网和与外部世界沟通的概念。我们讨论安卓框架提供的现成选项,以及第三方库,如毕加索和格莱德。

第 10 章开发一个简单的待办事项应用,讨论了使用 AndroidStudio 构建用户界面,并提供了使用列表视图和对话框的信息。

第 11 章坚持数据库,提供了关系数据库的简要介绍,详细讨论了 SQLite 上的 CRUD 操作,并考察了 ORMs 的使用,特别是谷歌的 Room ORM。

第 12 章设置任务提醒,讨论设置并从我们的 app 向用户推送通知。它还解释了如何利用云服务,如 Firebase 和亚马逊社交网站。我们还讨论服务和广播接收器。

第 13 章测试和持续集成,讨论了测试的重要性,Android Studio 通过 Android 测试支持库提供的开箱即用的支持,如何使用 Crashlytics 跟踪崩溃报告,以及 beta 测试。本章还介绍了配置项,并提供了使用詹金斯、竹和浪子等工具的详细步骤。

第 14 章让你的应用面向世界,解释如何将你的应用发布到谷歌 Play 商店和亚马逊应用商店。

第 15 章使用谷歌人脸应用编程接口构建应用,讨论了谷歌人脸应用编程接口的使用以及如何使用它构建应用。本章还提供了有关创建 Paint 实例和使用画布绘制图像的信息。本章还讨论了在图像上绘制矩形等形状。

充分利用这本书

具有面向对象编程和安卓活动生命周期的知识将是有用的,但不是强制性的。

AndroidStudio 的最新稳定版本(发布时的版本为 3.1.3)为 Kotlin 提供了开箱即用的支持。

下载示例代码文件

你可以从你在www.packtpub.com的账户下载这本书的示例代码文件。如果您在其他地方购买了这本书,您可以访问www.packtpub.com/support并注册将文件直接通过电子邮件发送给您。

您可以按照以下步骤下载代码文件:

  1. 登录或注册www.packtpub.com
  2. 选择“支持”选项卡。
  3. 点击代码下载和勘误表。
  4. 在搜索框中输入图书的名称,并按照屏幕指示进行操作。

下载文件后,请确保使用最新版本的解压缩文件夹:

  • 视窗系统的 WinRAR/7-Zip
  • zipeg/izp/un ARX for MAC
  • 适用于 Linux 的 7-Zip/PeaZip

这本书的代码包也在 GitHub 上的https://GitHub . com/PacktPublishing/Learning-Kotlin-by-building-Android-Applications托管。如果代码有更新,它将在现有的 GitHub 存储库中更新。

我们还有来自丰富的图书和视频目录的其他代码包,可在【https://github.com/PacktPublishing/】获得。看看他们!

使用的约定

本书通篇使用了许多文本约定。

CodeInText:表示文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟网址、用户输入和推特句柄。下面是一个例子:“将下载的WebStorm-10*.dmg磁盘镜像文件作为另一个磁盘挂载到系统中。”

代码块设置如下:

<dimen name="board_padding">16dp</dimen>
<dimen name="cell_margin">2dp</dimen>
<dimen name="large_text">64sp</dimen>

任何命令行输入或输出都编写如下:

brew cask install fastlane

粗体:表示一个新的术语、一个重要的单词或者你在屏幕上看到的单词。例如,菜单或对话框中的单词像这样出现在文本中。下面是一个示例:“从管理面板中选择系统信息。”

Warnings or important notes appear like this. Tips and tricks appear like this.

取得联系

我们随时欢迎读者的反馈。

综合反馈:发邮件feedback@packtpub.com并在邮件主题中提及书名。如果您对本书的任何方面有疑问,请发电子邮件至questions@packtpub.com

勘误表:虽然我们已经尽了最大的努力来保证内容的准确性,但是错误还是会发生。如果你在这本书里发现了一个错误,如果你能向我们报告,我们将不胜感激。请访问www.packtpub.com/submit-errata,选择您的图书,点击勘误表提交链接,并输入详细信息。

盗版:如果您在互联网上遇到任何形式的我们作品的非法拷贝,如果您能提供我们的位置地址或网站名称,我们将不胜感激。请通过copyright@packtpub.com联系我们,并提供材质链接。

如果你有兴趣成为一名作者:如果有一个你有专长的话题,你有兴趣写或者投稿一本书,请访问authors.packtpub.com

复习

请留下评论。一旦你阅读并使用了这本书,为什么不在你购买它的网站上留下评论呢?然后,潜在的读者可以看到并使用您不带偏见的意见来做出购买决定,我们在 Packt 可以了解您对我们产品的看法,我们的作者可以看到您对他们的书的反馈。谢谢大家!

更多关于 Packt 的信息,请访问packtpub.com