查看原文
其他

历久而新,我的新书《第二行代码》已开始预售

郭霖 郭霖 2020-10-29

回顾

《第一行代码》从出版到现在已经有两年多的时间了。当然,如果是从我开始写书的那天算起的话,时隔已经三年半之久了。回顾这三年半的时光,不得不感慨,Android 技术的发展真是日新月异。

记得在2013年我刚开始动笔写《第一行代码》的时候,Google正好推出了新的开发工具Android Studio,不过那个时候还只是 v0.1 版本。当时我还和我的编辑陈冰老师讨论过,书中到底是使用Eclipse来开发还是使用Android Studio来开发。最后讨论下来,由于Android Studio还太过于早期,不够成熟和稳定,因此《第一行代码》中还是使用Eclipse来作为开发工具的。而如今,三年多的时光,Android Studio已经从0.1版本升级到2.2版本了,并且早已替代了Eclipse,成为当前最主流的Android开发工具。

《第一行代码》全书的完稿时间大概是在2014年的3月份,而就在5月份的一天早上,陈冰老师急匆匆地打我电话,说出大新闻了!我疑惑地问:“什么大新闻啊?”他说:“啊?你不知道啊,Android出5.0系统了!(那个时候还叫Android L)”我当时听了之后脑子是有点懵逼的,要知道,《第一行代码》是基于4.x系统来编写的,谷歌从2011年发布4.0系统以来,一直是以4.1、4.2、4.3、4.4这样的小版本系统来升级的,怎么偏偏就在《第一行代码》快要发售的时候推出了这个号称是“历史上版本改动最大”的系统升级呢!

当时我和陈冰老师还是紧急商讨了一下,由于《第一行代码》计划是8月份上市,如果非要强行加入5.0系统的内容,一是我学习需要时间,二是写作也需要时间,这样书的发售就必然要推迟了。后来我们觉得,新系统刚刚出来,普及恐怕还要很久,就不赶这波热潮了。于是,《第一行代码》中的内容最终仍然是基于Android 4.x来编写的。

后来这两件事让我始终觉得遗憾,由于时间的原因,《第一行代码》完美地和Android Studio以及Android 5.0错过了。

成绩

虽说缺少了一些最新的知识点,包括后来还出现了盗版泛滥的事件,不过这些都没能影响《第一行代码》火爆的销售。其实并不是因为我推广做得有多好,大家可能觉得我的博客访问量比较高,在上面挂个推广链接什么的就能让书畅销了,并没有那么简单。

《第一行代码》在2014年的销量其实很一般,是在2015年才攀升上去的。那个时候很多第一批《第一行代码》的读者已经把书读完了,产生了良好的口碑,他们又将这本书推荐给了更多想学习Android开发的人。这种人传人的方式,比我单纯在博客上面挂个购买链接要远远有效得多。如果真是一本大烂书,相信不管我怎么推广,也不会有多好的销量的,反而还会被大家骂。只有真正内容过硬,才能得到大家的认可。

现在,只要你去大一点的书店或图书馆逛一逛,在里面都能找到《第一行代码》的身影。京东或者亚马逊的畅销排行榜,《第一行代码》在Android图书分类里大多数的时候销量都是排第一的。良好的口碑让很多人将《第一行代码》作为学习Android的首选书籍,现在将它称之为国内的“Android学习第一书”应该并不为过。

那么《第一行代码》到底卖了多少本呢?之前我还从来没有公布过具体的数字,那么由于现在已经停印了,因此也可以向大家汇报一下成绩了。很多没接触过图书行业的人,对于书的销量可能没什么概念,这里我先向大家普及一些知识。首先中国的图书行业并不是很发达,因为喜欢买书的人确实不多,而计算机图书又由于受众面很窄的原因,买的人就更少了。现在的不少计算机图书甚至是连首印都卖不完,能卖到一万本以上的计算机图书就可以算得上是畅销书了,能卖到三万本的话那已经是凤毛麟角了。陈冰老师当时拍胸脯跟我保证说,《第一行代码》至少能卖两万本,我笑笑说,能卖到一万本我就心满意足了。而现在,《第一行代码》出版两年半的时间,一共卖出了八万一千本,这个成绩是当初谁都无法预料到的,纵观整个图灵出版社的历史,恐怕也找不到几本比《第一行代码》卖得更好的书了。

新的开始

《第一行代码》虽然没有赶上Android Studio和Android 5.0的热潮,但同时这几年Android技术发展得实在是太快了。2015年Google推出了Android 6.0系统,2016年又推出了Android 7.0系统。其实每推出一个新的系统,也就意味着《第一行代码》中的内容更加过时。因此在今年年初的时候,我终于下定决心,将书中的内容全面升级,开始编写《第一行代码——Android 第2版》。当然这个名字感觉有点长,因此我更喜欢直接叫它《第二行代码》

新书的首要目标是要将《第一行代码》中已经过时的内容进行更新,以及加入这几年出现的各种新技术的讲解。包括Android Studio的使用,以及Android 5.0、6.0、7.0系统中引入的各种新的功能。

由于书的整体内容结构没有改变,因此一开始我以为只是小修小补而已,但事实上远没有我想象得那么轻松。除了介绍新知识点之外,书中之前的所有项目都需要重新编写和测试,以保证代码在新老系统上的兼容性。另外,由于Android从5.0系统开始,UI风格变化很大,因此《第二行代码》中所有的截图都需要重新截取,没有一张图是可以直接使用《第一行代码》中的。毫不夸张地说,我几乎重写了整本书。

这次的新书我大概是在今年2月份的时候开始动笔的,基本保持着每个月写3章的进度,到9月份的时候书中绝大部分的内容都已经写完了,然后我就开始等,等Android 7.0以及Android Studio 2.2正式版的发布。因为我不想重蹈覆辙,再留上次的遗憾,我不想书中的内容都是基于Android 6.0来编写的,而书还没来得及上市,Android 7.0系统就推出了。既然是要更新,那么就索性一次性更到最新。

Android 7.0其实还好,大概是在9月初的时候就推出正式版了,但当时Android Studio 2.2的正式版真的等得我好焦急,每天我都要到官网上去刷一下看看有没有发布。终于在9月下旬的时候把Android Studio 2.2给盼来了,于是我迅速对全书的所有内容进行了一遍修订,并将所有的代码都在Android 7.0和Android Studio 2.2中进行了重新的适配。10月份的时候全书顺利完稿并且进入出版流程,11月初送厂印刷,11月底开始预售,这个速度恐怕已经是史无前例了。

因此,《第二行代码》也是国内第一本基于Android 7.0系统的书籍。

内容

《第二行代码》中的内容我相信很多人都会非常感兴趣,因为里面确实加入了很多很新的知识。略粗概括一下的话,新增内容就包括有Android StudioGradleMaterial Design运行时权限多窗口模式RecyclerView百分比布局Lambda表达式OkHttpDoze模式等等,几乎囊括了Google近几年推出的所有热点技术。除此之外,还加入了几个比较完整的项目,不仅单个知识点的内容更加丰富,对各知识点之间的综合运用讲解也比《第一行代码》要好上很多。总而言之,这真的是我写得非常用心的一本书。

下面我就挑几个《第二行代码》中比较有特色的章节来给大家详细介绍一下吧。

第1章中搭建开发环境不再是使用Eclipse了,而是改用了Android Studio。书中除了对Android Studio的基本用法进行了讲解之外,还介绍了一些小技巧,比如说下面的这种Log打印技巧我相信很多人是不知道的:


第3章中,新增了RecyclerView百分比布局的讲解,其中对ReyclerView的多种方法都进行了细致的介绍,包括会带着大家实现纵向列表、横向列表、以及瀑布流列表的效果,下面是瀑布流效果的截图:


另外,第3章中还将最佳实践环节的聊天界面使用RecyclerView进行了重写,最终效果如下:


第7章中增加了Android 6.0运行时权限的讲解,第8章中对系统通知的各种用法进行了更新,第9章中增加了OkHttp的讲解,第10章中结合前面所学过的运行时权限、通知、OkHttp等知识,实现了一个综合度非常高下载服务程序,并且应我的QQ群中群友们的要求,这个下载服务还支持了断点续传功能。效果如下图所示:


第11章中讲的是地理位置服务(LBS),其实在《第一行代码》中,LBS方面的内容已经写得比较详细了,只是由于近几年Google的服务在中国全面无法访问,因此《第一行代码》中的这些内容也都失效了。那么为了保证这次《第二行代码》中的内容大家都可以正常运行,我将所有使用Google LBS服务的部分都替换成了百度LBS,现在不管是定位也好,地图也罢,大家都可以放心运行而不用担心程序一直跑不通了。

第12章是本书变动最大的一个地方,因为整章内容全部重写了。原来《第一行代码》中的第12章讲的是传感器的使用,我觉得这部分内容比较鸡肋,于是直接将这一章删掉了。现在《第二行代码》的第12章使用一整章的篇幅介绍了Material Design方方面面的知识,包括讲解了Toolbar 滑动菜单NavigationView 悬浮按钮SnackbarCoordinatorLayout卡片式布局下拉刷新折叠式标题栏等等控件的用法和特效的实现。整章内容学习完之后,最终大家都能实现一个具有高度Material Design效果的程序。由于程序效果比较复杂,使用GIF图无法展示出来,因此我做成了一个视频(视频大小在40M左右,请确保在WIFI情况下打开):https://v.qq.com/txp/iframe/player.html?width=500&height=375&auto=0&vid=n0347q0uur8
第13章中也加入了不少新的内容,因为第13章是最后项目实战之前的一个总结性章节,里面有很多你必须要掌握的高级技巧。新增内容包括有Android 6.0 Doze模式讲解Android 7.0多窗口功能讲解、以及Lambda表达式讲解等,也都是满满的干货。

第14章仍然是项目实战部分,仍然开发的是酷欧天气,只不过这次开发的是酷欧天气2.0,比《第一行代码》中的酷欧天气可要牛逼得多了。之前很多朋友在学习《第一行代码》中的酷欧天气时,时不时就会有人跟我反馈,获取省市县数据的接口访问不了了,或者是获取天气信息的接口访问不了了。对于这种情况我也无可奈何,毕竟用的是第三方服务的接口,人家接口关闭了我也没有办法。而《第二行代码》中,为了保证接口的稳定性,我专门在阿里云上购买了一台服务器,用于给大家提供长期可靠的接口支持,保证不会再让大家遇到学着学着接口就失效了的问题。

说了这么多,那《第二行代码》中的酷欧天气到底比《第一行代码》中的酷欧天气牛逼在哪里呢?我们直接来看下效果对比就知道了。先来看一下《第一行代码》中的酷欧天气效果,如下所示:


然后我们再来看一下《第二行代码》中的酷欧天气效果,如下所示:


相信不需要我多说,大家也一眼就能看出来,这两个版本的酷欧天气明显不是在一个档次上的。另外,新版酷欧天气的背景并不是一成不变的,而是每天都会有不同的背景,那么是如何实现的呢?等你学到这一章的时候就知道了。

第15章仍然还是教大家如何打包APK文件,以及如何上架应用程序,但是这次将会使用Gradle来打包APK,并且讲解了如何使用Gradle来打包多渠道APK文件。至于上架部分,《第一行代码》中讲的是如何上架Google Play,而现在Google Play已经无法访问了,因此《第二行代码》中改成了教大家如何将APP上架到360应用商店。总之,《第二行代码》的宗旨就是一定保证书中的所有例子都可以跑得通。

当然,除了上述内容之外,其他章节也都有很多的改动。尤其是在程序兼容性调整方面,几乎对每一章的代码都进行了优化和升级,以保证书中所有的程序在Android 7.0系统上都能完美兼容。不过这里我就不展开来细讲了,更多内容等待你自己去发现。

封面

我在《第二行代码》的封面设计方面可以说是下足了功夫。因为要和《第一行代码》有传承关系,但又要和《第一行代码》有明显的区分。因此,我当时给设计师提了两点要求:

1. 让人一眼看上去就知道这是《第一行代码》

2. 让人一眼看上去就知道这不是《第一行代码》

设计师当然也是做得很用心,给我提供了好几个版本让我选择,然后我又从中选出了3个我个人比较满意的版本,最后在公众号上搞了一个投票让大家来做最终筛选:


最终,绿色版本以接近50%的得票率当选,《第二行代码》的封面也最终定版,由大家共同选出来的一定是最好的,我们来一起欣赏下吧。


书签

《第二行代码》中还会赠送大家一个非常非常精致的小礼物,我个人认为这个小礼物也是这本书的特色之一。

其实我从小就是一个特别爱惜书的人,我是从来不舍得给书折角来记录看到哪里的。每当看到有些人将一本书的书角折得伤痕累累时,我都会觉得很心疼。因此,当我听出版社说,可以在《第二行代码》中赠送书签时,我高兴得要命。

既然是要赠送书签,那么书签也得好好设计一下。我仔细想了想,书签的主题一定要和书的主题相关才行,而《第二行代码》中最主要的特色就是涵盖了Android 5.0、6.0、以及7.0中的知识,那么就干脆以这三个系统为主题,设计三种不同风格的书签吧。

设计师当然也是很给力,设计的三种书签都非常好看,我们来一起欣赏一下吧:

这三种书签会随机放在每一本书里面,你将会拿到哪一种书签就全看运气了。

当然,书签这种小东西并不值什么钱,但是我还是花了很大心思去做这件事情,因为我对这本书的一点一滴真的都很用心。

定价

《第二行代码》的定价只能用“很良心”来形容。出版社之前一直在说我,嫌《第一行代码》的价格定的太低了,500多页的书只定了79元。而这次《第二行代码》不仅全面升级了内容,页数也增加了几十页,还赠送书签等等,因此出版社强烈建议将书价定为89元。虽说书价越高意味着我拿到的稿费也越多,但是高的书价同时也会在一定程度上影响销量。我咨询过QQ群里的群友们,其实很多人还是很在意书价的,尤其是还没工作的学生。因此,为了给大家争取权益,我也是尽了我最大的努力和出版社各种沟通、协商,最终出版社终于同意让《第二行代码》仍然保持79元!全面升级了内容,价格还一分钱不涨,这已经是我所能做的全部了。想要让出版社同意将《第二行代码》的定价定得比《第一行代码》还低,那真的是不可能的。

不过仍然要提醒大家一点,79元只是书的标价而已,而通常我们在网上买书都是有折扣的。折扣的多少由各网店自己来定,我参与不了,但一般也就是六十几块钱就能买到了。

送书

为了感谢大家一直以来对我的公众号的支持,这次特别向大家回馈一波福利。截至今晚12点,本篇文章留言点赞数排名前五的朋友,都将会获赠一本《第二行代码》。不过由于微信规定最多只能显示100条留言,因为过于简单的留言我就不予显示了,希望大家能尽量发表一些精华的评论。

购买签名版

最后还有一条重磅消息,《第二行代码》是有签名版的!这次我会专门去一趟北京,签名2000本《第二行代码》。而且签名版并不会加价,仍然是按平价来卖的,现在正在预售的就是签名版的《第二行代码》,总共只有2000本,先到先得呦!有需要的小伙伴们赶快点击下方的 阅读原文 链接抢购吧!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存