首页>参考读物>计算机科学与技术>软件与程序设计

跟着项目学iOS应用开发:基于Swift 4
作者 : 刘铭 陈雪峰 李钢 秦琼 著
出版日期 : 2018-09-17
ISBN : 978-7-111-60907-0
定价 : 89.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 388
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

内容简介
这是一本以实战为导向的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相关的知识,以及如何用它们构建图像识别类应用程序。

图书特色

摒弃传统入门书讲解方式,项目和任务驱动,逐步引导读者在实战中掌握iOS应用开发的工具、方法和技巧
由浅入深、循序渐进,核心知识点蕴藏在10余个设计精巧的案例中,零基础读者也能开发出高质量应用。
Develop iOS App with Swift
跟着项目学iOS应用开发
基于Swift 4
刘铭 陈雪峰 李钢 秦琼  著

图书前言

为什么要写这本书
从目前来看,iOS是全球最流行的移动端操作系统,这已经成为不争的事实。同时近年来苹果公司不断更新和完善供iOS OS X应用编程的开发语言Swift,使Swift在未来赚足眼球成为可能。作为一名iOS开发者,相信对于Swift语言并不陌生。使用Swift语言可以高效开发出高质量的移动应用。如果开发人员现在还不开始学习Swift,还在留恋着Objective-C的话,恐怕用不了多久,就会被Swift所带来的技术革新无情淘汰。另一方面,iOS本身也在快速地进行技术改进。与以往不同,iOS 10、iOS 11引入和开放了许多别出心裁的新技术,如Core-ML、ARKit等。如果开发人员能够充分利用这些新技术,就可以让自己的应用给用户带来前所未有的使用体验,进而在移动应用时代取得一个制高点。
Swift自身的发展太快了,很多程序员在将自己的项目从Swift 2迁移到Swift 3的时候就遇到了很多头痛的问题。希望像这样“毁灭性”的升级是最后一次。好在从Swift 3到Swift 4的变化并不大。通过本书,读者可以将学到的知识点运用到实战中去,真正地将所有知识点融会贯通,从而打通所有“脉络”,在编写程序代码的时候达到“思如泉涌”的效果。
本书结构
本书通过制作真实世界的应用程序来帮助读者学习Swift 4编程知识。例如木琴弹奏、问答测试、骰子游戏、聊天应用、待办事项类应用(TODO)和天气应用。另外,书中还包括苹果公司的Core-ML智能应用程序与机器学习的相关内容,通过学习这些内容你将可以构建图像识别应用程序。
本书是根据由易到难的顺序来安排应用程序项目的,具体如下。
第1章:介绍Xcode的安装,认识Xcode的用户界面及主要面板功能,带领大家创建Hello World应用。
第2章:使用Interface Builder简单搭建用户界面,并制作I am rich应用。
第3章:介绍如何在iPhone物理真机上安装应用程序。
第4章:通过制作掷骰子应用,掌握如何通过代码控制界面元素,以及当用户与界面元素发生交互时如何给代码发送消息。
第5章:Swift语言的基础知识讲解。
第6章:介绍如何利用Stack Overflow网站解决在开发时所遇到的问题,并利用AVAudioPlayer类在应用中播放声音。
第7章:介绍MVC设计模式,并制作问答测试应用程序。
第8章:学习自动布局的相关知识,并对掷骰子应用进行迭代更新。
第9章:介绍类与对象的相关知识。
第10章:通过CocoaPods安装第三方链接库,并通过相关API从远程WebService获取所需要的数据。
第11章:利用目前国内流行的云端数据库建立聊天应用。
第12章:介绍版本控制的相关知识。
第13章和第14章:利用CoreData、Realm等数据存储工具实现类TODO应用程序。
第15章:利用机器学习和Core-ML的相关知识,构建图像识别应用程序。
各个部分的功能实现都基于由浅入深、循序渐进的原则,让广大读者在实践操作的过程中不知不觉地学习新方法,掌握新技能。
本书面向的读者
本书适合具备以下几方面知识和硬件条件的群体阅读。
有面向对象的开发经验,熟悉类、实例、方法、封装、继承、重写等概念。
有Swift的开发经验。
有MVC设计模式的开发经验。
有简单图像处理的经验。
有一台Intel架构的Mac电脑(Macbook Pro、Macbook Air、Mac Pro或Mac Mini)。
如何阅读本书
每个人的阅读习惯都不相同,而且本书并不是一本从Swift语法讲起的基础“开荒”书。所以我还是建议你先从Swift 3.X的语法书学起,在有了一定的Swift语言基础以后,再开始阅读本书,跟着实践操作一步步完成各章节的项目。
在阅读本书的过程中,你可能会遇到语法错误、编译错误、网络连接错误等情况,不用着急,根据调试控制台中的错误提示,去分析产生Bug的原因,或者通过与本书所提供的源码进行对比,找出问题所在。
勘误和支持
由于水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。书中的全部源文件可以从GitHub(https://github.com/liumingl/iOS-11-Swift-4-Tutorial)下载,也可以从我的网站(刘铭.cn)下载。如果你有任何宝贵意见或建议,欢迎发送邮件至liuming_cn@qq.com,期待得到你们的真挚反馈。
致谢
首先要感谢伟大到可以改变这个世界的Steven Jobs,他的精神对我产生了非常大的影响。
其次要感谢机械工业出版社华章分社的编辑杨福川老师和小艺老师,在这段时间中始终支持我的写作,你们的鼓励和帮助使我顺利完成全部书稿。
最后感谢我的爸爸、妈妈、刘颖、刘怀羽、张燕、王海燕,感谢你们对我的支持与帮助,并时时刻刻给我信心和力量!
谨以此书献给我最亲爱的家人,以及众多热爱iOS的朋友们!

刘铭

上架指导

计算机\移动开发

封底文字

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

作者简介

刘铭 陈雪峰 李钢 秦琼 著:刘铭
资深iOS技术专家,从事软件开发10余年,在iOS开发和Mac应用开发方面积累了丰富的实战经验。
乐于分享,先后受邀在VeryCD、ITCast、极客学院等平台发布过PHP、Flex和iOS方面的视频教程,在社区里有很大的知名度和影响力。
著作颇丰,先后出版了《iOS 6应用开发实战》、《iOS10快速开发:18天零基础开发一个商业应用》等4著作,深受读者欢迎。
QQ交流群:刘老师的iOS小屋(群号:230443535)

图书目录

前 言
第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

教学资源推荐
作者: [美]雷蒙德·盖拉多(Raymond Gallardo) 斯科特·霍梅尔(Scott Hommel) 索娅·坎南(Sowmya Kannan) 琼尼·戈登(Joni Gordon) 沙伦·比奥卡·扎卡沃(Sharon Biocca Zakhour)著
作者: 钱晓捷 编著
作者: 骆斌 主编 邵栋 任桐炜 编著