前 言
编写本书的目的
截止到本书出版,图书市场上已经有很多关于iOS开发教学的书籍,它们各有优势,比如有些书籍在某个技术面讲解的非常细致深入,有些书籍专注于iOS应用的性能优化,有些书籍则注重于开发语言的语法讲解等。然而如果你有一定的编程语言基础,并且没有任何完整的开发经验,想要学习iOS开发,本书依然是非常好的选择,本书为初学者定制,对基础知识点的讲解细致入微,并且配有非常详细的示例代码。本书的前两版,也得到了许多读者的认可,本版相比前两版扩充了一些新的技术点,并且采用最新的iOS 11+Xcode 9+Swift 4作为开发环境,以使读者了解iOS技术进展,掌握最新的开发技术。
开发一款完整的iOS软件是一个复杂的过程,开发者除了需要有编程语言的基础外,还需要对程序设计有宏观的把控。本书在编写时,定位的目标就是要帮助并无太多基础的读者快速上手iOS应用开发。从开发环境准备到程序界面开发,从网络与数据逻辑开发到动画与传感器技术,本书都有专门的章节进行介绍。如果说学习理论是一个枯燥的过程,那么在编程中的动手实践就是对理论学习成果的最好检验。本书中基本每一个模块都配备了实战项目,读者可以通过实战项目的练习,体会独立开发App应用软件的成就感。
本书主要内容
本书在结构上分11章,下面介绍各章的主要内容。
第1章是为学习应用开发做准备,介绍开发环境的搭建与开发工具的使用,这一章虽然为准备章节,但对初学者来说至关重要。
第2章介绍iOS开发中的一些基础UI控件,移动端应用一个很重要的特点就是要有绚丽的界面,应用程序的界面决定了用户使用这款应用程序的体验与心情,这一章向读者独立地介绍每个基础控件的用法,并通过一些综合实战来给读者提供使用这些控件的机会。
第3章在第2章的基础上,向读者介绍iOS开发中经常使用的更多高级控件的用法,同样也为读者提供了实战机会。
第4章主要讲解了iOS应用开发中的网络编程技术,由于网络编程的演示需要有网络数据支持,很多有关网络教学的文档书籍都只是讲授理论,却没有办法使读者切身地进行测试与练习。在编写本章时,特别注意了这个问题,除了讲授网络编程在iOS应用开发中的相关知识外,还教读者如何使用网上免费的API服务真正做出一款网络应用。
第5章主要讲解iOS应用程序开发中的音频与视频技术,这类技术在开发音频软件和视频软件中意义重大。
第6章将作为动画专题,向读者介绍iOS应用开发中的动画技术,章节设计由简到难,并且都配有代码演示。
第7章将作为传感器专题,向读者介绍iOS开发中可以调用的设备传感器的相关知识。
第8章是界面布局专题,编写中参阅了很多iOS应用开发教材,其中都没有过多提到界面布局的相关知识,笔者认为这是一个十分大的弊端,界面布局技术是衡量一个开发者是否合格的重要指标,笔者相信读者学习iOS开发技术绝对不只是想简简单单地做出一个Demo自己玩,做出“产品”才是读者的真正目标,而一款成熟的产品一定是具有兼容性的,一定是优雅的。因此,本书特别将iOS界面布局技术作为一个单独的章节来向读者介绍。
第9章是数据持久化专题,本章将介绍有关iOS应用开发中的文件操作、数据库操作的相关知识。
通过前9章的学习,你已经具备独立开发一款iOS应用的基础能力,但是仅仅做出产品还不够,如何让自己的产品在市场发布,使用户可以下载使用也是开发者不得不去了解、学习的内容,第10章将完整地向读者介绍提交自己的应用到App Store的整个过程。
第11章是扩展章节,此章也是读者开发能力提升的一个章节,本章将介绍一些独立于前面章节,但在实际开发中也举足轻重的编程技术。
视频教学和源代码下载
读者可以从如下网址(注意区分数字与字母大小写)下载源代码和视频教学:
https://pan.baidu.com/s/19Z5WSYAqKXLpif-t9kkNMg
https://pan.baidu.com/s/1TaYi8cyW6zh_htMRjVOayA
也可以扫描下面的二维码获取网址。如果下载有问题,请联系电子邮箱booksaga@126.com,邮件主题为“iOS开发实战:从零基础到上架App Store”。
如果你想获取更多关于iOS开发的视频教学,可以访问笔者的网络学院:http://edu.csdn.net/lecturer/1283。也可以访问笔者的技术博客: https://my.oschina.net/u/2340880。博客中有近300篇关于iOS开发的技术文章,这可以成为你的知识存储库。
对于本书前两版中出现的差错,衷心地向读者表示歉意。本版中对读者提出的问题都一一进行了修正,在终稿前,笔者花费了很多时间反复校稿,希望本版可以完美地出现在读者面前,然而世上完美之事少之又少,虽已尽力,仍不敢保证此书中再无差错。此书一经出版已成定局,如果你在阅读本书时发现任何差错或有任何疑问,都可以直接联系笔者QQ。
最后,本书得以顺利完成和出版,要感谢清华大学出版社的王金柱编辑,感谢他在笔者写作过程中的指导与鼓励,可以将编程经验顺利地分享给读者,王金柱编辑是不可替代的桥梁。
张益珲(网名:珲少)
2018.7.22