跟着项目学iOS应用开发:基于Swift 4

更多详情

内容简介: 内容简介
这是一本以实战为导向的iOS应用开发教程,它将以项目实战的方式教会读者如何用全新的iOS SDK、Xcode 和Swift开发商业级的iOS应用。
作者是iOS开发领域的资深专家,不仅技术精湛,而且在教学和写作上也颇有经验,所以本书在写作方式和内容编排上做了很大的创新。它摒弃了传统的入门类实战开发教程“先讲理论,后讲案例”或“只讲案例,不讲理论”的写作形式,而是将全部的理论知识点全部汇入精心编写和安排的项目实战中。跟随项目案例的指导,读者不仅能迅速上手,而且能避开枯燥的理论知识,但最终又会通过案例深入领会理论知识的要领。这一点是本书与其他所有同类书的不同之处,确保读者能坚持把书看完,看完后能学得会。
全书一共15章:
第1~4章是开发前的准备工作,首先介绍了XCode、Interface Builder的安装和配置;然后介绍了如何再iPhone物理机上安装应用程序;最后是一个综合案例,将开发工具的使用和应用程序的安装等知识点贯穿起来;
第5章和第9章,通过案例的形式讲解了Swift的基础语法和语法的进阶知识。
第6~8章以及第10~14章通过大量案例讲解了开发iOS应用需要具备的所有技能和技巧,掌握这些内容,已经具备中等开发能力水平。
第15章讲解了机器学习和Core ML相关的知识,以及如何用它们构建图像识别类应用程序。

目录: 前 言
第1章 开始iOS 11和Swift 4编程 1
1.1 iOS 11应用程序开发工具 1
1.2 下载安装Xcode 3
1.3 浏览 Xcode 开发环境 4
1.4 初步剖析iOS应用程序 10
第2章 Interface Builder 介绍 12
2.1 如何创建 Xcode 项目 13
2.2 使用故事板创建用户界面 13
2.3 如何定位用户界面元素 16
2.4 导入图像素材到Xcode项目 18
2.5 运行并测试项目 20
第3章 在iPhone真机上安装应用 22
3.1 使用Xcode将项目下载到物理真机 22
3.2 通过GitHub下载项目样例代码 25
第4章 构建简单的掷骰子游戏 29
4.1 如何设计掷骰子游戏 29
4.2 建立代码与界面元素的关联 32
4.3 IBOutlets/IBActions调试 35
4.4 使用Swift创建随机数 37
4.5 数据类型、常量、变量 39
4.6 解决错误:“The Maximum Number of Provisioning Profiles Reached” 42
4.7 通过数组改变显示方式 43
4.8 为项目添加运动检测功能 46
4.9 挑战:Swift 数据类型、变量和数组 47
第5章 Swift程序设计基础 51
5.1 备注、打印语句和调试控制台 51
5.2 Swift函数: Part 1 - 简单函数 54
5.3 Swift函数: Part 2 - 函数的输入 56
5.4 Swift函数: Part 3 - 函数的输出 58
5.5 Swift 中的条件语句 (IF/ELSE) 59
5.6 挑战:在Playgrounds中制作人体体重指数计算器 62
5.7 Swift 中的循环语句 63
5.8 在程序中使用循环 64
5.9 挑战:脑筋急转弯 68
第6章 利用iOS API制作音乐应用 71
6.1 使用故事板中的Tags 71
6.2 学会使用Stack Overflow和Apple Documentation 74
6.3 利用 AVFoundation 播放声音 82
6.4 Swift 4中的错误捕获——Do、Catch和Try 84
6.5 创建一个播放声音的方法 86
6.6 让App每次播放不同的声音 88
6.7 程序中的“作用域” 89
第7章 使用Model-View-Controller设计模式制作小测验App 92
7.1 初始化Quizzler项目 92
7.2 创建数据模型 96
7.3 面向对象 98
7.4 创建答题库类 101
7.5 Model View Controller (MVC) 设计模式 102
7.6 初始化第一个题目 104
7.7 处理后续题目 106
7.8 使用 Xcode 调试控制台 108
7.9 如何实现UIAlertController以及弹出窗口给用户 110
7.10 高级别的重写 113
7.11 统计分数 113
7.12 合并Objective-C代码到Swift 116
7.13 挑战:制作情商测试应用 119
第8章 iOS的自动布局和设置约束 124
8.1 通过代码定位UI元素 126
8.2 自动布局 128
8.2.1 在界面生成器中实时预览布局效果 129
8.2.2 使用自动布局将square居中 130
8.2.3 解决布局约束的问题 132
8.2.4 另一种预览故事板的方式 133
8.2.5 添加一个标签 135
8.2.6 安全区域 137
8.2.7 编辑约束 139
8.3 自动布局实战——设置约束 139
8.4 挑战自动布局 145
8.5 在自动布局中使用堆叠视图 146
第9章 Swift 4中阶知识 152
9.1 类和对象 152
9.2 创建全新的类 153
9.3 创建枚举 155
9.4 根据类创建一个对象 156
9.5 类的初始化 157
9.6 Designated和Convenience初始化方法 158
9.7 创建一个方法 160
9.8 类的继承 161
9.9 重写一个继承的方法 162
9.10 Swift语言中的可选 164
第10章 利用Cocoapods、GPS、APIS、 REST制作天气应用 169
10.1 设置项目 170
10.2 注册免费的API Key 172
10.3 为什么需要Cocoapods? 173
10.3.1 在你的Mac上安装和设置Cocoapods 174
10.3.2 在你的Xcode项目中安装Pods 176
10.4 设置Location Manager并从iPhone获取GPS数据 177
10.5 定位权限 181
10.6 在WeatherViewController中获取GPS数据 184
10.7 委托、字典和API 190
10.7.1 委托 190
10.7.2 字典 190
10.7.3 API 191
10.8 使用Alamofire 192
10.9 JSON以及如何解析JSON 193
10.10 创建气象数据模型 196
10.11 Segues的相关介绍 201
10.12 在项目中使用委托和协议 204
10.13 如何在视图控制器间传递数据 207
10.14 基于城市名称的天气数据请求 212
10.15 挑战:利用Cocoapods、REST和APIs构建比特币价格跟踪应用 213
第11章 利用云端数据库、iOS 动画和高级Swift特性构建聊天应用 219
11.1 关于Bmob 219
11.1.1 在LeanCloud上注册账户 220
11.1.2 设置Bmob 220
11.2 保存数据到Bmob 222
11.2.1 创建桥接头文件 222
11.2.2 测试云端数据库的读写 223
11.2.3 在应用上注册一些用户 224
11.3 Swift闭包 227
11.4 事件驱动、应用程序生存期 231
11.4.1 事件驱动——应用运行的本质 231
11.4.2 应用程序的生存期 232
11.4.3 什么是完成处理? 232
11.5 导航控制器是如何工作的? 235
11.6 编写登录屏幕代码 236
11.7 表格视图 237
11.8 了解UI动画 243
11.9 发送消息 247
11.10 通过Bmob监听数据表的变化 248
11.11 进一步完善用户体验和用户界面 253
11.11.1 利用Progress Spinner改善用户体验 253
11.11.2 区别不同的用户 254
第12章 Git、GitHub和版本控制 256
12.1 版本控制和 Git 256
12.2 使用Git和命令行进行版本控制 257
12.3 GitHub 和远程仓库 260
12.4 Gitignore 263
12.5 克隆 266
12.6 分支和迁移 267
12.7 在Xcode 9中使用 Git 和 GitHub 273
第13章 使用Core Data、User Defaults学习本地数据存储 279
13.1 创建UITableViewController的子类 280
13.2 在UIAlert中使用文本框创建新的条目 285
13.3 持续本地数据存储 290
13.3.1 为什么需要持续的本地数据存储 290
13.3.2 使用UserDefaults实现持续本地数据存储的功能 291
13.3.3 UserDefaults说明 295
13.3.4 Swift中的单例模式 296
13.3.5 创建自定义数据模型 297
13.3.6 UserDefaults的弊端 301
13.4 认识NSCoder 301
13.4.1 使用NSCoder编码对象数组 301
13.4.2 使用NSCoder解码 304
13.5 在应用中使用数据库 305
13.5.1 设置和配置Core Data 306
13.5.2 如何使用Core Data存储数据 311
13.5.3 查看SQLite后端数据库 313
13.5.4 Core Data基础 314
13.5.5 从Core Data读取、修改和删除数据 315
13.6 借助Core Data的查询功能实现搜索 317
13.7 借助Core Data创建关系图 323
第14章 使用Realm进行本地数据存储 333
14.1 在项目中集成Realm 334
14.2 使用Realm保存数据 336
14.3 使用Realm读取数据 340
14.4 使用Realm修改和移除数据 343
14.5 使用Realm检索数据 344
14.6 回顾Realm的操作流程 345
14.7 让单元格可以滑动 347
14.8 让App的界面更加丰富多彩 352
14.9 调整导航栏的UI 357
第15章 机器学习和Core-ML 362
15.1 介绍机器学习 362
15.1.1 机器学习 362
15.1.2 监督式学习 363
15.1.3 非监督式学习 366
15.1.4 强化学习 366
15.2 Core-ML——整合机器学习到iOS应用中 367
15.2.1 什么是Core-ML 367
15.2.2 Core-ML能做什么 369
15.2.3 如何识别图像并反馈结果 374
15.2.4 判断图片中的食物 376


媒体评论: 移动互联网发展至今,从技术的角度来讲,iOS的整个生态体系已经非常完备和成熟。从操作系统iOS,到编程语言Swift,再到开发工具XCode,功能越来越强大,越来越丰富。与之相应地,初学者进入这个领域的门槛也越来越高,因为需要掌握的知识越来越多。
如何才能让读者快速掌握开发iOS应用的各种工具、理论知识和方法技巧,是大多数入门级iOS应用开发者的核心诉求,也是该领域入门书要解决的一个难题。目前,该领域的入门书很多,但几乎所有书都动辄数百页,从iOS、Swift到XCode,仅仅把理论和使用讲明白,可能就已经是鸿篇巨著了,如果再加上案例和开发经验总结,篇幅还会大大增加。这无形给了读者巨大的压力,导致很多读者很难坚持把这样一本书看完,即便看完了,也很难真正掌握,因为传统的讲解方式,把理论和实践割裂了。
本书作者从事移动开发多年,不仅出版iOS开发方面的专著多部,而且长时间从事这方面的教学,不仅深谙初学者的学习痛点,而且琢磨出了解决问题的方法——将所有理论知识全部融入精巧设计的案例中!初学者大多都不喜欢看枯燥的理论,更喜欢动手实践,这本书能让读者翻开书便动手“照葫芦画瓢”,直到读者主动地把书全部看完。案例写完了,不仅开发方法和理论知识全部掌握了,而且能建立起强大的自信。