前 言
一、编写本书的目的
随着中国移动互联网行业的蓬勃发展,几年前,我也积极投身到互联网创业中。在创业方向的选择上,几经尝试,最终选择了互联网教育。一方面是因为希望为中国的互联网企业提供更多的合格人才;另外一方面也希望为广大的学子提供一个高质量、低价格的学习平台。目前,我国的高等教育的人才供给与市场需求之间还存在着巨大的偏差,特别在移动开发兴起的前几年,能够熟练掌握移动应用开发技能的工程师极为稀缺,因而造成了企业用人成本居高不下。互联网企业通常只能靠高薪挖猎才能获得心仪的员工,这严重制约了互联网企业,特别是中小互联网企业的创新与发展步伐。为了解决供需两端的矛盾,我就在思考能否提供一本高质量且低价格,既无学习门槛且又符合最佳项目实践的图书呢?从去年开始,我和我的伙伴们一同开始筹划编写这本书,把我们在实践教学过程中以及实践开发过程中的经验进行提炼和总结,本书适合没有任何移动开发技术的读者从零开始学习,并且能够快速掌握实际工作中最常使用的核心技术,做到合理利用时间且有的放矢地进行学习。
移动技术的开发经过几年的竞争,已经形成了两大方向:iOS以及Android。Android平台的用户数量巨大,且Android开发以Java语言为基础,所以之前很多从事Java开发的工程师都转型成为Android开发工程师,其入门门槛相对较低。而苹果的iOS系统,由于其采用的语言是Objective-C,在最初阶段能够熟练掌握该门语言的工程师数量极为稀缺,因此造成了iOS开发的入门门槛比较高。由于iOS系统是一个相对封闭的系统,其前期的语言学习有一定难度,但是一旦入门之后,其进阶学习的难度要比Android平台容易很多。虽然目前Android平台的用户数量超过iOS平台,但苹果设备在工业设计、用户体验、客户价值等方面都有很大的优势。
二、本书的主要内容
在开始编写本书之前,我们团队内部针对究竟该采用Objective-C语言为主,还是Swift语言为主,展开了激烈的讨论。由于大家学习一门语言更多的目的是出于就业需要,综合目前国内的现状,我们认为在目前阶段还是需要以Objective-C语言为主。虽然苹果公司官方以及国内外很多媒体都在大力推广Swift语言,但就国内现状而言,Swift语言还不是一门成熟且被普遍使用的语言,但我们相信在2~3年以后,Swift语言一定会有较快的发展,而如果从就业角度考虑,我们认为还是需要优先掌握Objective-C语言。在介绍iOS平台的基础知识过程中,我们使用了Objective-C语言,但对Swift语言也提供了入门使用的语法介绍,有兴趣的读者可以使用Swift语言把前面的代码进行重写。另外,从2015年开始,React Native变得越发火热,为了紧跟技术发展趋势,同时为了增加大家的就业竞争力,我们在本书中也加入了对React Native技术的介绍。总之,全书的内容是紧紧围绕就业这个目的展开的,如果你想成为一名iOS开发工程师,本书会是你的一个好选择。
本书包括六大部分,24章。
第1部分介绍了Objective-C语言。如果完整地介绍Objective-C语言,需要一本厚厚的书籍,而我们把Objective-C语言在日常编程工作中最常使用的功能进行了提炼,让大家能够快速地掌握Objective-C语言中最核心的内容。
第2部分以UIKit框架为主,介绍了iOS开发中构成界面所需的各种控件,同时重点介绍了在实际应用中广泛使用的几种控制器,包括普通控制器、导航控制器等。
第3部分提供了iOS开发中使用的进阶内容,包括多线程技术、数据持久化技术、网络、地图、传感器、核心绘图、核心动画、消息推送、证书管理以及应用发布等内容,使读者能够对iOS开发中的高级知识点具备完整的认知。
第4部分介绍了在iOS开发中使用的第三方开源框架和工具。程序员的世界是一个开放的世界。开放、开源应该是每个致力于从事技术岗位的程序员的追求。借助第三方开源框架以及工具能够帮助我们极大地提升开发效率,学会使用其他人提供的“梯子”已经是当前每个程序员必须掌握的技巧。
第5部分我们提供了Swift语言的介绍。虽然Swift语言目前在国内还没有完全成为主流,并且其自身也存在一些不完善的地方,但提前掌握Swift语言的基础对于将来向Swift语言过渡是大有益处的。
第6部分是React Native技术的介绍。React Native是Facebook于2015年开源的跨平台移动应用开发框架,React Native之所以近一两年非常火热,其中一个重要原因在于其能够同时完成iOS以及Android两个客户端的编写。在React Native的章节中我们着重介绍了React Native开发环境的部署、重要概念以及常用控件的使用,使读者能够由浅入深地逐步掌握该项技术的核心用法。
三、配书资源
为了帮助各位读者学习,我们团队录制了配套教学视频,每个视频的长度都控制在10分钟左右,便于大家能够在最短的时间内掌握每个知识点的核心内容,欢迎各位读者到清华大学出版社官网下载或联系作者获取(www.99ios.com)。另外,针对每个章节,我们都提供了示例代码,也欢迎各位读者下载。
四、反馈与勘误
欢迎广大读者对本书做出反馈,让我们知道本书中哪些部分是您喜欢的或者哪些部分是需要完善的。如果您对本书有任何建议,请发送邮件至3300170691@qq.com。
虽然我们团队十分用心确保内容的准确性,但错误依然难以避免。如果在阅读过程中,您发现了书中存在的错误,非常感谢您能反馈给我们,请将错误内容发送至3300170691@qq.com,这不仅能够帮助其他读者解除疑惑,也可以帮助我们在下一个版本中进行改善。
五、致谢
完成一本书籍的编写是对技术、体力以及意志的综合考验,我们团队牺牲了无数的休息时间才完成了全书的编写。首先,需要感谢清华大学出版社的编辑在编写过程中给予我们的耐心指导。其次,要感谢我的伙伴们,特别是汤海波以及闫珍完成了React Native以及Swift内容的编写,并对全书的内容进行了审核;李维佳作为我最优秀的学生完成了全书内容的整理以及案例代码的编写。最后,感谢我的爱人,在我编写本书期间承担起了全部的家庭事务;2017年恰逢我的父母六十大寿,在此也祝愿两位老人身体健康,每天都有好心情!
由于时间仓促,书中难免有不妥之处,请读者原谅。
史昕
2017年12月