第一季Kotlin崛起:次世代Android开发(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-27 07:33:14

点击下载

作者:张云波,王卓

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

第一季Kotlin崛起:次世代Android开发

第一季Kotlin崛起:次世代Android开发试读:

前言

在开始本书之前,简单介绍Kotlin的历史与发展方向。2017年5月,谷歌2017年度I/O大会上除了宣布热门的人工智能技术,还宣布把Kotlin作为安卓开发的首选语言,以及逐步取代历史悠久的Java语言在安卓开发中的地位。

除了谷歌与Java版权方Oracle有官司影响安卓发展的这个因素以外,Kotlin这门课程从发明到发展,已经有6年的历史,此次算是地位扶正、一朝登顶,很多Kotlin爱好者把它称作今年最好的消息,对于业界,以及要入行的广大新手来说,很显然也是一次重大的机会。

作为一个关注移动开发领域的开发者及培训讲师,我也不甘人后,第一时间看完了英文版的官方教程并于第一天在51CTO、腾讯课堂上推出了一个简单的实战课程,体验过后才知道Kotlin是多么方便和畅快。观众也有非常热烈的讨论和回馈,学习气氛非常浓厚。可见这门新语言的热度之高和市场之大。

Kotlin这种地位的取得与Kotlin本身的各种现代化编程语言特性分不开,像苹果的Swift语言一样,简洁、安全、现代是其卖点,再加上无缝兼容现有的Java代码,有眼光的安卓开发者早就运用多年,所以此种正名也是众望所归,谷歌大会上获取掌声最大也证明了对Kotlin的广泛认可。

很荣幸应电子工业出版社之邀编写本书,本打算只编写语法部分,可后来觉得实在是干货太少,于是加入Kotlin与安卓开发的部分,并随后附上一个小型实战App并加上Kotlin服务端有关的内容,以便将内容向全栈方向推进,各位读者可能觉得买了也更有价值。追加部分的内容由两位优秀的在校大学生王卓和沈家瑜及他们的小伙伴们大力支持和编写。

本书分为3篇:第一篇,基础语法篇,主要讲解最基础的面向过程式语法;第二篇,面向对象篇,详解Kotlin的面向对象;第三篇,Kotlin 安卓开发篇,主要讲解开发工具Android Studio的使用、UI常用组件和Kotlin开发框架Anko的应用,且以两个小实战展示Kotlin在安卓平台的实际开发能力。如本书阅读中遇到问题,您可进群:18247468与众多开发者沟通或者下载相关资料。作者简介小波

小波 上海交通大学毕业,《小波说雨燕》系列Swift教学视频作者,表情包式的表演成功吸引了新手的注意。为人勇敢而懦弱,大气却苛刻,长不大的IT宅男。人生如戏,常靠临时演技,曾因一言不合,为看动漫然学日语,后莫名其妙获得了东京工作机会。目前致力于移动App领域的开发和培训工作。你有酒我有故事,直播说给你听。王卓

王卓 苏州大学2014届物联网工程专业学生,拥有两年移动端开发经验,独立开发过千人以上日活跃用户的上线iOS项目。对Node.js后端开发、嵌入式开发、信息安全、数据挖掘也有所涉猎,喜欢一切炫酷的黑科技,热衷参加各种黑客马拉松。沈家瑜

沈家瑜 浙江农林大学在校学生,掌握多门编程语言,iOS和Java Web经验丰富,在校写过编程书籍且参与学生创业项目若干,曾在网上发布自己的教学视频。目前正致力于机器学习领域的探索。周光丰

周光丰 浙江农林大学在校学生,对编程有浓烈的兴趣,掌握C++、Java、Kotlin等多门计算机语言,有丰富的Web前端和安卓移动App开发经验。第1篇基础语法篇

基础语法篇含7章,哪怕您是完全没有编程经验的新手,都可以从这里开始,这不是一本枯燥无味、术语堆积的编程书,读完你会发现,原来编程源于生活,默默支撑了平常随时可见的各种业务,如交通、供电、供水、天然气、订餐、购物。编程离您很近,善用编程的概念,不仅可以开发各种App,而且也会让您更好地观察、世界了解世界的运作,这也是每一种编程语言发明者追求的目标之一。

工欲善其事,必先利其器,从传统的IDE开发环境安装配置,然后是经典的Hello World入门,让大家快速上手,对这门语言有一个快速直观的印象,熟悉IntelliJ这款Kotlin开发商同厂的知名IDE。

接着是常量和变量这两个所有编程语言中最开始接触到的术语,表达了代码中的可变与不可变,在Kotlin又有何新式的使用方面和语法,以及开发者如何灵活使用两者的策略。

如何赋值和等号的使用,是新手上路时最为迷惑的问题。可能是小学数学的印象,这一点在编程中需要做观念转换了,一个等号是赋值,两个等号才是相等(判断)。其实我们平常说的意思都是判断句。从这点说起来,我们都是天生的编程奇才(手动偷笑)。

上手之后,来到介绍与日常生活数量和逻辑相关的基本单位类型,如整数、小数、是否(布尔型),类型组合(元组)、选填(可空类型),还有Kotlin的各种特性简要叙述。

Kotlin是门类型安全语言,但同时保持了类型推测,会自动根据常量或变量的具体数字来推测相关的类型,从而大大避免了Java、C等语言烦琐的类型声明,让代码变得异常简洁明快,看起来很像JavaScript。如果这点要做个日常生活的比喻,就好比地铁安检,是用了一个人们看不见的安检机,不知不觉中完成了安全检查,很显然这是一种优雅的提升,提高了编程的效率。第1章Kotlin初入门1.1 练习环境配置

工欲善其事,必先利其器,弄斧就得去班门。Jetbrains就是编程IDE界的班门,连大名鼎鼎的Eclipse都要略逊一筹。谷歌为了安卓开发环境的最优化,硬是放弃了Eclipse而转用这个公司的产品,很多天天用Android Studio开发环境的安卓同学们很可能都没看过他们的网站,如图1.1所示。图1.1 Jetbrains官网

看到显眼的KotlinConf吗?这重视程度那是相当呀。看到PS了么—PhpStorm,这个图标也是相当棒。但这都不是重点,KotlinConf上面最左边的IntelliJ IDEA看起来有主角光环?对了,就是它!好了,单击它,DOWNLOAD就可以了。

在安装之前,还要下载Java Development Kit,百度一下JDK第一个进去就是。

因为Java是跨平台的,在下载页面根据你的系统选择。

一般电脑用的是Windows x86或Windows x64,建议下载x64版本的,如果安装不了则再选x86版本的。笔者因为同时做iOS开发,所以用的是Mac OS X(见图1.2)。图1.2 JDK下载页面

安装过程大同小异,基本都是一路[Next]按钮或者[Enter]键。安装完毕启动,如图1.3所示。图1.3 IntelliJ IDEA启动画面

单击Create New Project,选择左侧工程类型导航窗格中的Kotlin,右侧选Kotlin(JVM)。Kotlin(JVM)即Kotlin编译成基于Java虚拟机的代码。另一个Kotlin(JavaScript)则是编译成JavaScript代码,这两种选项充分说明了Kotlin的极大灵活性,如图1.4所示。图1.4 选择新建Kotlin工程类型

单击[Next]按钮后,在New Project界面输入工程名,如HelloWorld(见图1.5)。图1.5 新工程命名为HelloWorld

单击[Finish]按钮后,出现IntelliJ IDEA的主界面,如图1.6所示。图1.6 启动今日小贴士(Tip of the Day)

如图1.6所示,中间的Tip of the Day是一些常用功能的小贴士,介绍了这个IDE本身的一些特色,有兴趣可以一直单击[Next Tip]按钮看下去。大多数人直接把这个东西关闭,其实我认为是非常实用的,不用去网上搜索或者自己摸索。关掉贴士窗口后,看到最左侧默认打开的是Project窗口,是我们刚才新建的HelloWorld工程,点开前面的小三角,再点src,就是今后我们要写Kotlin代码的主要地方。在src上右键单击,选择菜单File-New-Kotlin File/Class,出现一个小对话框,要求给一个Name,如HelloWord(注意没有漏掉l,这个名可以任意取,也可以任意新建多个),Kind选默认的File,如图1.7所示。图1.7 新建文件

单击[OK]按钮后,如图1.8所示。图1.8 Project窗格

.kt文件就是Kotlin源码文件的专用扩展名。双击文件后,右侧大片空白区域显示出一个编辑器,这里就是编辑代码的地方,如图1.9所示。图1.9 编辑器区域

默认的字体是比较小的,笔者为了避免编程的眼睛疲劳,一般都会调整为大字体。IntelliJ IDEA这方面的可定制性也是非常强大的。Mac OS在主菜单Preferences,Windows系统在菜单Tools – Options,在左侧窗口找到Editor – Color & Fonts – Font,把Size改为25,Primary font可以选一种感到舒服的字体。然后单击[Apply]按钮,就可以看到编辑器中的文字效果,调整完成,单击[OK](见图1.10)。图1.10 配置编辑器字体

当然,这个只是调整中间编辑器的字体大小,如果你想对整体的字体进行放大,可以在Appearance & Behavior中选Appearance,勾选右侧的Override defalut fonts by (not recommended),把size改成一个你想要的大小(见图1.11)。图1.11 配置整体字体

因为笔者的显示器尺寸很大,这样的大字体看起来就非常舒服了,即使长时间编程,眼睛也不会非常疲劳,最终效果如图1.12所示。

IntelliJ IDEA这款IDE界面的功能非常多,一开始我们用得不多,常用的几个列举如下。(1)左侧的工程文件导航栏,可以单击最左边缘竖排的1.Project进行显示或隐藏。隐藏后,还可以通过紧挨工具栏下面的文件目录进行导航,非常便捷。(2)文件打开和保存、复制、粘贴、剪切等常规操作,均是系统标准的组合键。也可以通过工具栏最左边的几个图标按钮实现。(3)工具栏上左右箭头,类似浏览器的前进和后退,可以按打开顺序在各文件中导航。图1.12 配置完毕的IDE(4)底部左侧的Terminal,可以打开集成的命令行窗格,默认打开工程路径,可以执行各种命令或者运行工程编译完成的程序。(5)如果你不小心关闭其中任何一个窗口,都可以通过菜单View,找到相应的窗口名称,点选后即可打开,已经打开的窗口菜单项前有一个对勾。(6)如果想与你的朋友和老师交流编程心得,也可以把整个源码文件以HTML格式导出。复制粘贴代码有可能会丢失源代码中的语法高亮细节。使用菜单File—Export to HTML,如图1.13所示。图1.13 导出为HTML页面

好,第一节就带大家熟悉IntelliJ IDEA这款业界良心的IDE到这里,同时也是熟悉今后安卓开发的一个铺垫。1.2 Hello World程序

千里之行,始于足下。编程的多彩世界,我来了(Kotlin:终于等到你了)。

传统上,所有编程语言的第一个学习例子是Hello World,是一句衷心美好的愿望。从学C语言这一高级编程语言始祖到继承者们C++、Java、Pascal、Javascript、C#、Swift等毫无例外,学Kotlin这么优秀的语言当然也要遵循这一“古训”,讨个好兆头了。非常简单的一句代码:

全世界都在学中国话,加在Hello World后毫无毛病。那么,print是什么?括号和引号又是什么意思?告诉你个好消息,如果你懂了这2个,可以说基本学会了编程的一大半。纳尼??

你看我这么认真的样子就知道我有多诚实(严肃脸状)。print字面是打印的意思,这里指打印到电脑屏幕上。什么?你要打印到打印机上……好吧,土豪,友乎?

一对圆括号指传递给print这个功能的参数,把一段话写到双引号里面指在Kotlin中表示一串文本。一开始我们就学到一个功能,显示文字到屏幕。Kotlin中把这个print叫函数(其他语言也这么叫)。恭喜你完成了这个任务!

然而,怎么让这行代码真正动起来呢?这时候你需要另一个函数:main。

我们还没有到安卓开发的章节,所以现在运行的程序都不会显示任何可鼠标互动UI,如按钮、选择框等。只能在命令行里运行,没错,就是黑客用的那种界面了,全部是打字,没有鼠标。原来编程一开始就是黑客,帅帅哒。

现在请在上面那条代码最后按[Enter]键,另起一行,打一个mai,如图1.14所示。

紧邻代码悬浮的小区域,是IDE的智能代码提示,会跟随你输入的代码智能选择匹配的功能代码,以便快捷完成输入,而不会发生低级的输入错误。可以说,这是选择IDE这个集成开发环境的最大好处,好比手机有了通讯录一样,再也不用担心电话号码记不住了。智能提示大大提高了开发效率,让程序员们能够更集中精力在研究算法或者业务上,而不是在打字正确率上。图1.14 代码提示

细心的你会发现,其实不用打完main,只要打第一个词m,这个main的提示就会出现。这时候你按[Enter键],就会刷地一下自动完成一大堆代码(见图1.15)。图1.15 代码完成效果

别急,我一个个来分解。(1)fun: function的缩写,代表函数的定义。如果类比数学,好比写了一个公式。(2)main: 意思是主要,整个程序的入口。你看fun前面的彩色Kotlin logo,就是这个函数是入口。(3)args: arguments的缩写,指函数的参数,既然带了s,说明是复数形式,那么这个函数不止一个参数。(4)Array: 代表String类型的Array,String即是字符串、文本。Array代表一组元素的意思。(5){}:一对花括号中间还有一行,代表这个函数的体(body),好比一个人肚子里有多少“货”一样。一个函数到底功能有多少,还是看花括号内有多少“货”。

好了,其实你现在记不住这些很正常,谁还不是从编程小白开始。现在开始上货,把上面的print整行选中,拖到main的花括号里来:

这时候点一下fun前面,行号8紧跟的Kotlin彩色logo出现一个菜单,选第一项(Run‘_1_HelloWorldKt’),或直接按快捷键[Ctrl + Shift + R],如图1.16所示。图1.16 运行菜单

这时候在编辑器下面会弹出一个窗口,稍等片刻,即可显示运行结果(见图1.17)。图1.17 运行结果

前两行是Java虚拟机和SDK启动信息,第3行就是我们代码的运行结果了!

第4行是程序结果的提示。可以单击右下角的“4:Run”随时显示或隐藏此窗格。

第一个“Hello World 世界你好”程序终于完成了,干得漂亮!

马上进入下一节:常量和变量。1.3 常量与变量“我思故我在”“塞翁失马,焉知非福”“日月之行,若出其中。星汉灿烂,若出其里”

这些充满哲理和寓意的千古名言犹如人生指南,揭示了世界与个人命运之间复杂却又恒定的关系,虽说人生无常,世界变化太快,但其中某种恒定的规律却值得我们去探寻。

1.3.1 常量

回到Kotlin中的常量与变量,也只是相对的概念。所谓常量,就是在预期范围内恒定不变的量,如圆周率,差不多在我们这个宇宙就是3.14159……这个无限不循环小数。生活中,如一个人的性别,终其一生也不会“自动”改变。预期范围再近一点,如女朋友数量、工资(可能是个悲伤的话题)。这些量通常我们可以称为常量。(1)val指Kotlin中定义一个常量固定的词语,变量是var。这些词在Kotlin语法中保持不变,是语言的保留字,不允许做其他用途,我们称为“关键字”。(2)常量名的命名有讲究,除了不能以数字或下画线开头外,可以用任意词语,包括表情文字、汉字、假名、彦文等。这对我们东亚地区对英文单词普遍不是那么感冒的学习者就好很多,编程看起来就相当本地化了,至少刚学的时候(偷笑)。

其实我在本书一开头也是这么干的,为了各位看得清楚明白,尽量先用中文做替代命名,本书后期还是用英文的命名替代。(3)“=”这里可不是等于的意思,是赋值,用右边的值更新左边的常量。这是初学者常犯的错误(这个其实都要怪C语言的发明者搞这么个反数学常识的概念),习惯就好。

一言不合,先来4段代码, 写在main函数花括号第一行:

跟上上一节学会的print函数的兄弟函数println把上述3个常量(最后一个是变量定义,下一节讲)分行显示:

完整代码如图1.18所示。图1.18 完整代码

如果你没有打错(注意所有非中文的部分,如关键字、空格、引号全部需要是英文且半角状态),按组合键[Ctrl+Shift+R]或者直接单击Kotlin logo选Run执行程序。

结果:

不知道你有没有get到,常量或变量比Hello World程序进步在哪里?那就是有了一个代名词,可以替代实际的值。

1.3.2 变量

可主动变更或者可预计期间内自动有规律或者无规律的量。变量的灵活性就非常好了,可以随时根据业务需求、状态变化、自然规律、人为意愿等进行更新。例如,每天的清醒时间、个人前途……(怎么感觉有点未卜),咳……换个话题! 咱们要学习领导用的指标性术语,如GDP、CPI、人口数量、加班时间、放假天数、股票指数、招商业绩、幸福指数、房贷利息……

还是来代码吧:

双斜杠所在的行称为注释,在其之后的文字都是标明代码的用途,并不会参与执行,所以显示为灰色。良好的注释,有三大好处:有助于自己理解、便于他人理解、专业优雅。如果不想每一行都想写双斜杠,可以在多行注释的开头写“/**”、结尾写“**/”配对结束,如:

那上面我们写了一个“空调开机时间”的变量,值是5,意思是开5小时。如果天气更热,想增加一倍的时间怎么办?

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载