iOS 10快速开发:18天零基础开发一个商业应用

更多详情

内容简介: 本书以构建一个仿Instagram项目的实践案例贯穿全书,将所有知识点融入到实践当中,使大家真正理解和掌握如何通过XcodeSDK和Swift3.0语言来开发iOS应用程序。除了书中所涉及的程序代码以外,本书还配套推出了相应的UI设计视频,并通过二维码的形式供广大读者观看。全书共分37章。第1~10章的内容实现的是Instagram基本的功能。第11~18章实现个人用户和访客页面的相关功能。第19~25章实现的是个人配置页面及发布页面的功能。第26~32章实现了帖子评论功能。第33~37章实现了Instagram的集合页面,搜索及通知功能。各个部分的功能实现都基于由浅入深,循序渐进的原则,让广大读者在实践操作的过程中不知不觉的学习新方法,掌握新技能。


目录: 前言
第一部分
第1章 创建项目并集成LeanCloud SDK 2
1.1 访问LeanCloud 3
1.2 创建Xcode项目——Instagram 4
1.3 将LeanCloud SDK集成到iOS项目中 5
1.4 初始化 LeanCloud SDK 7
本章小结 10
第2章 创建用户登录界面 11
2.1 从故事板中创建视图 11
2.2 搭建用户的登录界面 13
2.3 为SignInVC类和视图创建Outlet和Action关联 16
2.3.1 什么是Outlet和Action 16
2.3.2 为SignInVC创建Outlet 17
2.3.3 为SignInVC创建Action 20
2.4 调整模拟设备 22
本章小结 22
第3章 创建用户注册界面 23
3.1 利用滚动视图创建用户注册界面 23
3.2 创建Outlet和Action关联 26
3.3 让注册视图消失 29
本章小结 30
第4章 注册视图中编写与界面相关的代码 31
4.1 获取当前屏幕的尺寸 31
4.2 添加键盘相关的Notification通知 33
4.3 Swift语言中的可选特性 35
4.4 以动画的方式改变滚动视图的高度 39
4.5 通过Tap手势让虚拟键盘消失 40
本章小结 41
第5章 设置注册页面的用户头像 42
5.1 为Image View添加单击手势识别 42
5.2 创建照片获取器 43
5.3 访问照片库的前期准备 45
5.4 将Image View的外观设置为圆形 47
本章小结 48
第6章 提交用户注册信息到LeanCloud 49
6.1 检验用户输入的数据 49
6.2 if语句中对可选链的处理 50
6.3 使用UIAlertController显示警告信息 50
6.4 提交数据到LeanCloud平台 52
6.5 在LeanCloud云端查看提交的信息 54
本章小结 55
第7章 用户登录 56
7.1 利用UserDefaults存储用户信息 56
7.2 SignInVC中的用户登录 60
本章小结 61
第8章 创建项目并集成LeanCloud SDK 62
8.1 删除已经安装到模拟器中的App 62
8.2 创建密码重置页面的视图 63
8.3 完成重置控制器代码 65
本章小结 66
第9章 调整注册和登录界面的布局 67
9.1 通过Size Classes查看界面布局在不同设备上的效果 67
9.2 对登录界面布局 68
9.3 对注册界面布局 70
9.4 对密码重置界面布局 72
本章小结 72
第10章 美化Instagram 73
10.1 添加字体 73
10.2 设置各功能视图的背景图 74
10.3 注册用户的邮箱校验 77
本章小结 78
第二部分
第11章 创建Home Page用户界面 80
11.1 在故事板中搭建集合视图 80
11.2 为集合视图创建代码类 83
11.3 添加Outlet和Action 84
11.4 调整集合单元格 85
本章小结 87
第12章 从云端读取当前用户信息 88
12.1 创建个人主页与标签控制器的关联 88
12.2 修改HomeVC的代码 89
12.3 应用程序传输安全协议 93
12.4 设置导航栏标题 94
本章小结 95
第13章 在个人主页中显示帖子信息 96
13.1 在LeanCloud云端创建数据类 96
13.2 编写接收数据的代码 99
13.3 创建单元格相关代码 102
本章小结 105
第14章 获取用户的帖子及关注数 106
14.1 注册后的用户登录 106
14.2 在云端创建关注记录 108
14.3 获取用户相关数据信息 110
本章小结 111
第15章 与统计数据之间的交互 112
15.1 在故事板中创建表格视图控制器 112
15.2 创建Outlet关联 113
15.3 统计数据被单击后的实现代码 115
本章小结 118
第16章 从云端载入关注人员信息 119
16.1 从云端获取关注人员信息 119
16.2 创建表格视图的单元格 120
16.3 设置关注按钮的状态 122
16.4 添加关注和取消关注 125
本章小结 127
第17章 创建访客的相关功能 128
17.1 在故事板中创建用户界面 128
17.2 实现GuestVC类的代码 129
17.3 从云端获取访客的帖子信息 132
17.4 获取访客个人页面的Header信息 134
17.5 单击访客统计数据后的实现代码 136
17.6 从其他控制器切换到GuestVC 138
17.7 对于访客的关注和取消关注 140
本章小结 141
第18章 设置访客页面的布局 142
18.1 用户的退出 142
18.2 设置HeaderView的布局 143
18.3 设置集合视图单元格的大小 145
18.4 关注页面的布局 146
本章小结 147
第三部分
第19章 创建用户配置界面 150
19.1 在故事板中创建个人配置控制器视图 150
19.2 创建Action和Outlet关联 154
19.3 为视图创建布局代码 155
19.4 实现与界面相关的代码 158
本章小结 162
第20章 个人配置页面数据的接收与提交 163
20.1 从云端获取个人用户信息 163
20.2 对Email和Web进行正则判断 164
20.3 发送信息到服务器 167
20.4 更新个人主页信息 169
本章小结 170
第21章 实现帖子上传功能 171
21.1 在故事板中创建上传用户界面 171
21.2 创建上传控制器代码类 173
21.3 实现照片获取器的相关代码 174
21.4 实现上传的相关代码 177
21.5 在个人主页刷新集合视图 179
21.6 移除上传页面中的照片 181
本章小结 183
第22章 实现分页载入功能 184
22.1 为HomeVC实现分页载入功能 184
22.2 为GuestVC实现分页载入功能 187
本章小结 187
第23章 搭建帖子控制器的界面 188
23.1 创建帖子控制器界面 188
23.2 创建单元格的Outlet关联 191
23.3 整理PostVC类的代码 191
23.4 生成表格视图的单元格 194
23.5 从HomeVC切换到PostVC时的代码实现 196
本章小结 198
第24章 设置帖子单元格的布局 199
24.1 设置单元格垂直方向的布局 199
24.2 设置单元格水平方向的布局 201
本章小结 203
第25章 进一步美化程序界面 204
25.1 为按钮定制Icon图 204
25.2 美化导航栏 205
25.3 美化标签栏 206
25.4 调整上传照片页面 207
25.5 设置标签栏中的Item 210
本章小结 210
第四部分
第26章 喜爱按钮的功能实现 212
26.1 设置喜爱按钮状态及显示喜爱的数量 212
26.2 实现喜爱按钮的交互 213
26.3 实现照片的双击交互 216
26.4 实现用户名的单击交互 217
本章小结 218
第27章 创建用户评论界面 219
27.1 创建评论控制器的用户界面 219
27.2 完善用户界面代码 221
27.3 在PostVC中实现评论按钮的交互 223
27.4 对CommentCell的控件布局 225
27.5 实现评论控制器的功能代码 226
本章小结 229
第28章 实现评论的相关功能 230
28.1 实现Text View的功能 230
28.2 实现Table View的功能 233
28.3 从云端载入评论 235
本章小结 238
第29章 实现评论的特色功能 239
29.1 发送评论到云端 239
29.2 与用户名的交互 241
29.3 删除评论 242
29.4 @Address操作 244
29.5 投诉评论 245
29.6 为三个Action添加背景图 248
本章小结 248
第30章 实现Hashtags和Mentions功能 249
30.1 实现Hashtag和Mention的识别功能 249
30.2 实现Mention的交互 254
30.3 将Hashtag发送到云端 256
本章小结 259
第31章 创建Hashtag控制器 260
31.1 创建Hashtag控制器界面 260
31.2 实现Hashtag的交互 262
31.3 实现HashtagsVC类的代码 263
本章小结 269
第32章 处理More按钮的响应交互 270
32.1 创建More按钮的Action关联 270
32.2 创建More按钮的交互代码 271
32.3 为项目设置返回和退出按钮 274
32.4 处理不存在的用户 276
本章小结 278
第五部分
第33章 创建Feed控制器 280
33.1 创建Feed控制器的用户界面 280
33.2 实现FeedVC控制器的代码 283
33.3 实现FeedVC控制器表格视图相关代码 287
33.4 设置Feed页面的Icon 290
本章小结 291
第34章 创建用户搜索功能 292
34.1 创建搜索控制器用户界面 292
34.2 实现用户搜索功能 295
34.3 在表格视图中显示搜索结果 297
34.4 设置搜索页面的Icon 299
34.5 在UsersVC中实现集合视图 300
本章小结 306
第35章 创建通知控制器界面 307
35.1 搭建通知控制器的用户界面 307
35.2 设置通知页面的Icon 309
35.3 评论或@mention的通知处理 309
35.4 Like的通知处理 312
35.5 Follow的通知处理 314
35.6 设置NewsCell中界面控件的布局 315
本章小结 316
第36章 接收数据到通知控制器 317
36.1 从News数据表中接收数据 317
36.2 处理News单元格的交互操作 320
36.3 设置通知页面的图标 323
本章小结 327
第37章 对用户界面的再改进 328
37.1 设置上传标签 328
37.2 设置按钮为圆角 329
37.3 调整通知提示条的动画 331
37.4 调整标签栏中Item的设置 331
本章小结 331

前言: 为什么要写这本书
目前,不管是在京东、淘宝、当当还是亚马逊,所有市面上销售的符合Swift 3.0语法的iOS开发书籍屈指可数。即便有也是基于Swift 3.0语言的几个常用知识点,分章节进行传统式讲授,比如Swift基本语法、控制流、函数和闭包等。如果再找一本Swift 2.0的相关书籍,从目录可以发现它们之间的区别并不大。这也就意味着,如果你已经掌握了Swift 2.0,就没有必要再去买一本Swift 3.0的语法书去学习它们之间的不同,因为这些大部分只是形式层面上的不同。
作为一名iOS开发程序员,如果掌握了Swift语法知识以后,接下来便是需要通过积累项目实战经验来提升自己的等级了。而这一过程的重点是在完成项目需求的“一条线、一个面”上,而不是在“某个点”上面。因此,这个项目必须是一个接近完美的产品,它要可以访问后台数据库,具有社交功能,可以添加关注和“被粉”,可以注册用户,实现登录和退出,通过注册的邮箱修改密码,发送信息到后台服务器的数据库,可以通过相册发布帖子照片,可以评论、@其他用户和提交主题标签,当有新消息的时候还可以通知当前用户。基于这样的考虑,本书以国外较为流行的照片分享应用程序——Instagram为例,实现了从用户注册、登录到照片发布、评论、主题标签和@mention等一系列功能,让广大读者可以通过本书将所学到的知识点运用到实战中去,摆脱纸上谈兵,真正地将所有的知识点融会贯通,从而打通所有“脉络”,在编写程序代码的时候达到“思如泉涌”的效果。
本书的主要内容和特色
在笔者读过的很多技术书籍中,绝大部分都是每个章节介绍一个技能,并且通过一个相对独立的实例来进行讲解。例子虽然短小,容易理解,但是所有章节没有任何关联,使读者缺乏开发一个真正完整项目的体验。
本书以构建一个仿Instagram项目的实践案例贯穿全书,将所有知识点融入到实践中,使大家真正理解和掌握如何通过Xcode SDK和Swift 3.0语言来开发iOS应用程序。
除了书中所涉及的程序代码以外,本书还配套推出了相应的UI设计视频,并通过二维码的形式供广大读者观看。这样做的目的:一是因为通过视频方式讲解UI界面的制作过程会更加生动形象,易于读者的学习与实践;二是可以节省很多纸张来进行文字性描述和贴图,更加环保;最后一点就是阅读本书的读者大部分都是程序员,本身对于美工方面的技能并不是很精通,但多了解一些也没有什么坏处,不至于在团队交流的时候被“忽悠”了。基于这三点考虑,笔者录制了相应UI界面的制作视频,可以让程序员在编写代码的时候,开开心心制作UI界面。
本书是根据应用程序项目所实现的功能安排章节的,具体如下:
第一部分(第1~10章)实现的是Instagram最基本的功能,包括:在iOS项目中集成LeanCloud SDK,实现用户的注册、登录和密码重置功能,UI界面的搭建与布局。
第二部分(第11~18章)实现个人用户和访客页面的相关功能,包括:个人用户和访客的页面UI搭建,从LeanCloud云端获取个人信息,关注和被粉信息等。
第三部分(第19~25章)实现的是个人配置页面及发布页面的功能,包括:个人配置页面的数据接收与提交,帖子照片的上传,分页载入,帖子单元格的布局等。
第四部分(第26~32章)实现了帖子评论功能,包括:创建评论界面,创建主题标签和@mention功能等。
第五部分(第33~37章)实现了Instagram的集合页面,搜索及通知功能。
各个部分的功能实现都基于由浅入深、循序渐进的原则,让广大读者在实践操作的过程中不知不觉地学习新方法,掌握新技能。
本书面向的读者
本书适合具备以下几方面知识和硬件条件的群体阅读。
有面向对象的开发经验,熟悉类、实例、方法、封装、继承、重写等概念。
有Objective-C或Swift的开发经验。
有MVC设计模式开发经验。
有简单图像处理的经验。
有一台Intel架构的Mac电脑(Macbook Pro、Macbook Air、Mac Pro或Mac Mini)。
如果加入了iOS开发者计划,还可以准备一台iOS移动设备。
如何阅读本书
每个人的阅读习惯都不相同,而且本书并不是一本从Swift语法讲起的基础“开荒”书。所以我还是建议你先找一本Swift 2.X的语法书学起,在有了一定的Swift语言基础以后,再开始阅读本书,跟着实践操作一步步完成Instagram项目。
在阅读本书的过程中,我们可能会遇到语法错误、编译错误、网络连接错误等情况,不用着急,根据调试控制台中的错误提示,去分析产生Bug的原因,或者通过与本书所提供的源码进行对比,找出问题所在。
本书采用循序渐进的方式,这也就意味着在第5章出现的知识点,有可能在第12章还会出现。这样就可以使广大读者有机会多次去学习和巩固该知识点所能够解决的问题,效果会更好。
勘误和支持
由于水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。书中的全部源文件可以从华章网站(www.hzbook.com)下载。如果你有更多的宝贵意见,也欢迎发送邮件至邮箱liuming_cn@qq.com,期待能够得到你们的真挚反馈。
致谢
首先要感谢伟大到可以改变这个世界的Steven Jobs,他的精神对我产生了非常大的影响。
感谢机械工业出版社华章公司的编辑杨福川老师,在这段时间中始终支持我的写作,你的鼓励和帮助引导我顺利完成全部书稿。
最后感谢我的爸爸、妈妈、刘颖、刘怀羽、张燕、卢红玲,感谢你们对我的支持与帮助,并时时刻刻给我信心和力量!
谨以此书献给我最亲爱的家人,以及众多热爱iOS的朋友们!
刘铭
2016年12月于中国北京