网站颜色:

正版 iOS开发指南 从Hello World到App Store上架 第5版 全新升级 Swift和ObjectiveC双语讲解 iOS开发基础教程书 ios编程.

  • 产品名称:iOS开发指南-从HelloWor...
  • 书名:iOS开发指南-从HelloWorld到AppStore上架(第5版)
  • 作者:关东升
  • 定价:119.00元
  • 书名:iOS开发指南-从HelloWorld到AppStore上架(第5版)
  • 是否是套装:否
  • 出版社名称:人民邮电出版社


商品参数

iOS开发指南 从Hello World到App Store上架 第5版
定价 (咨询特价)
出版社 人民邮电出版社
版次 1
出版时间 (咨询特价)-01
开本 16
作者 关东升
装帧 平装
页数
字数
ISBN编码 30
重量

目录

DIYI部分 基 础 篇


第壹章 开篇综述  2


1.1 iOS概述  2


1.1.1 iOS介绍  2


1.1.2 iOS 10新特性  2


1.2 开发环境及开发工具  3


1.3 本书约定  4


1.3.1 案例代码约定  4


1.3.2 图示的约定  5


1.3.3 方法命名约定  6


1.3.4 构造函数命名约定  7


1.3.5 错误处理约定  7


第2章 DIYI个iOS应用程序  8


2.1 创建HelloWorld工程  8


2.1.1 通过Xcode创建工程  9


2.1.2 添加标签  11


2.1.3 运行应用  13


2.1.4 Xcode中的iOS工程模板  13


2.1.5 应用剖析  14


2.2 应用周期  16


2.2.1 非运行状态——应用启动场景  18


2.2.2 点击Home键——应用退出场景  18


2.2.3 挂起重新运行场景  21


2.2.4 内存清除:应用终止场景  21


2.3 设置产品属性  22


2.3.1 Xcode中的工程和目标  22


2.3.2 设置常用的产品属性  24


2.4 iOS API简介  26


2.4.1 API概述  26


2.4.2 如何使用API帮助文档  26


2.5 小结  28


第3章 Cocoa Touch框架与构建应用界面  29


3.1 视图控制器  29


3.1.1 视图控制器种类  29


3.1.2 视图的周期  29


3.2 视图  30


3.2.1 UIView继承层次结构  30


3.2.2 视图分类  32


3.2.3 应用界面构建层次  33


3.3 使用故事板构建界面  34


3.3.1 什么适事板  34


3.3.2 场景和过渡  37


3.4 使用XIB文件构建界面  38


3.4.1 重构HelloWorld  38


3.4.2 XIB与故事板比较  42


3.5 使用纯代码构建界面  42


3.5.1 重构HelloWorld  42


3.5.2 视图的几个重要属性  44


3.6 三种构建界面技术讨论  46


3.6.1 所见即所得  46


3.6.2 原型驱动开发  46


3.6.3 团队协同开发  47


3.7 小结  47


第4章 UIView与视图  48


4.1 标签与按钮  48


4.1.1 Interface Builder实现  48


4.1.2 代码实现  51


4.2 事件处理  53


4.2.1 Interface Builder实现  53


4.2.2 代码实现  55


4.3 访问视图  57


4.3.1 Interface Builder实现  57


4.3.2 代码实现  58


4.4 TextField和TextView  60


4.4.1 Interface Builder实现  60


4.4.2 代码实现  62


4.4.3 键盘的打开和关闭  64


4.4.4 关闭和打开键盘的通知  64


4.4.5 键盘的种类  65


4.5 开关控件、分段控件和滑块控件  67


4.5.1 开关控件  67


4.5.2 分段控件  69


4.5.3 滑块控件  70


4.6 Web视图:WKWebView类  72


4.7 警告框和操作表  77


4.7.1 使用UIAlertController实现警告框  77


4.7.2 使用UIAlertController实现操作表  79


4.8 等待相关的控件与进度条  81


4.8.1 活动指示器ActivityIndicatorView  81


4.8.2 进度条ProgressView  83


4.9 工具栏和导航栏  86


4.9.1 工具栏  86


4.9.2 导航栏  90


(咨询特价) 小结  95


第5章 委托协议、数据源协议与高ji视图  96


5.1 视图中的委托协议和数据源协议  96


5.2 选择器  96


5.2.1 日期选择器  96


5.2.2 普通选择器  101


5.2.3 数据源协议与委托协议  106


5.3 集合视图  108


5.3.1 集合视图的组成  108


5.3.2 集合视图数据源协议与委托协议  109


5.4 案例:奥运会比赛项目  109


5.4.1 创建工程  110


5.4.2 自定义集合视图单格  110


5.4.3 添加集合视图  112


5.4.4 实现数据源协议  114


5.4.5 实现委托协议  115


5.5 小结  115


第6章 表视图  116


6.1 概述  116


6.1.1 表视图的组成  116


6.1.2 表视图的相关类  117


6.1.3 表视图分类  117


6.1.4 单格的组成和样式  119


6.1.5 数据源协议与委托协议  121


6.2 简单表视图  122


6.2.1 实现协议方法  122


6.2.2 UIViewController根视图控制器  123


6.2.3 UITableViewController根视图控制器  129


6.3 自定义表视图单格  133


6.3.1 Interface Builder实现  133


6.3.2 代码实现  137


6.4 添加搜索栏  138


6.5 分节表视图  143


6.5.1 添加索引  143


6.5.2 分组  146


6.6 插入和删除单格  147


6.6.1 Interface Builder实现  149


6.6.2 代码实现  154


6.7 移动单格  155


6.8 表视图UI设计模式  157


6.8.1 分页模式  157


6.8.2 下拉刷新模式  158


6.8.3 下拉刷新控件  159


6.9 小结  160


第7章 界面布局  161


7.1 界面布局概述  161


7.1.1 表单布局模式  161


7.1.2 列表布局模式  161


7.1.3 网格布局模式  162


7.2 iOS中各种“栏”  162


7.3 传统界面布局问题  163


7.4 Auto Layout布局技术  164


7.4.1 在Interface Builder中管理Auto Layout约束  164


7.4.2 案例:Auto Layout布局  164


7.5 静态表布局  169


7.5.1 什么是静态表  169


7.5.2 案例:iMessage应用登录界面  170


7.6 使用堆视图StackView  174


7.6.1 堆视图与布局  174


7.6.2 案例:堆视图布局  175


7.7 小结  180


第8章 屏幕适配  181


8.1 iOS 屏幕的多样性  181


8.1.1 iOS屏幕介绍  181


8.1.2 iOS的3种分辨率  182


8.1.3 获得iOS设备的屏幕信息  183


8.2 Size Class与iOS多屏幕适配  184


8.2.1 在Xcode 6和Xcode 7中使用SizeClass技术  184


8.2.2 Size Class的九宫格  185


8.2.3 Size Class的四个象限  186


8.2.4 在Xcode 8中使用Size Class  187


8.2.5 案例:使用Size Class  190


8.3 资源目录与图片资源适配  192


8.4 小结  195


第9章 视图控制器与导航模式  196


9.1 概述  196


9.1.1 视图控制器的种类  196


9.1.2 导航模式  196


9.2 模态视图  197


9.2.1 Interface Builder实现  199


9.2.2 代码实现  205


9.3 平铺导航  206


9.3.1 应用场景  206


9.3.2 基于分屏导航的实现  208


9.3.3 基于电子书导航的实现  213


9.4 标签导航  219


9.4.1 应用场景  219


9.4.2 Interface Builder实现  220


9.4.3 代码实现  223


9.5 树形结构导航  225


9.5.1 应用场景  225


9.5.2 Interface Builder实现  226


9.5.3 代码实现  233


9.6 组合使用导航模式  235


9.6.1 应用场景  235


9.6.2 Interface Builder实现  236


9.6.3 代码实现  243


9.7 小结  246


第壹0章 iPad应用开发  247


10.1 iPad与iPhone应用开发的差异  247


10.1.1 应用场景不同  247


10.1.2 导航模式不同  247


10.1.3 API不同  247


10.2 iPad树形结构导航  248


10.2.1 “邮件”应用中的树形结构导航  248


10.2.2 Master-Detail应用程序模板  249


10.2.3 使用Interface Builder实现SplitViewSample案例  254


10.2.4 使用代码实现SplitViewSample案例  258


10.3 iPad模态视图  261


10.3.1 “邮件”应用中的模态导航  261


10.3.2 iPad模态导航相关API  262


10.3.3 使用Interface Builder实现ModalViewSample案例  264


10.3.4 使用代码实现ModalViewSample案例  268


10.4 Popover视图  271


10.4.1 Popover相关API  272


10.4.2 PopoverViewSample案例  272


10.5 分屏多任务  276


10.5.1 Slide Over多任务  276


10.5.2 分屏视图多任务  278


10.5.3 画中画多任务  280


10.6 iPad分屏多任务适配开发  280


10.6.1 分屏多任务前提条件  280


10.6.2 分屏多任务适配  281


10.7 小结  282


第壹1章 手势识别  283


11.1 手势种类  283


11.2 手势识别器  284


11.2.1 视图对象与手势识别  284


11.2.2 手势识别状态  285


11.2.3 实例:识别Tap手势  285


11.2.4 实例:识别Long Press手势  290


11.2.5 实例:识别Pan手势  291


11.2.6 实例:Swipe手势  293


11.2.7 实例:Rotation手势  295


11.2.8 实例:Pinch手势  297


11.2.9 实例:Screen Edge Pan手势  299


11.3 小结  301


第壹2章 Quartz 2D绘图技术  302


12.1 绘制技术基础  302


12.1.1 视图绘制周期  302


12.1.2 实例:填充屏幕  302


12.1.3 填充与描边  305


12.1.4 绘制图像和文本  306


12.2 Quartz图形上下文  308


12.3 Quartz路径  309


12.3.1 Quartz路径概述  309


12.3.2 实例:使用贝塞尔曲线  311


12.4 Quartz坐标变换  312


12.4.1 坐标系  312


12.4.2 2D图形的基本变换  315


12.4.3 CTM变换  317


12.4.4 仿射变换  322


12.5 小结  322


第壹3章 动画技术  323


13.1 视图动画  323


13.1.1 动画块  323


13.1.2 动画结束的处理  325


13.1.3 过渡动画  326


13.2 Core Animation框架  329


13.2.1 图层  329


13.2.2 隐式动画  331


13.2.3 显式动画  333


13.2.4 关键帧动画  335


13.2.5 使用路径  336


13.3 小结  338


第2部分 数据与网络通信篇


第壹4章 数据持久化  340


14.1 概述  340


14.1.1 沙箱目录  340


14.1.2 持久化方式  341


14.2 实例:MyNotes应用  341


14.3 属性列表  343


14.4 使用SQLite数据库  349


14.4.1 SQLite数据类型  350


14.4.2 添加SQLite3库  350


14.4.3 配置Swift环境  351


14.4.4 创建数据库  351


14.4.5 查询数据  353


14.4.6 修改数据  355


14.5 iOS 10中的Core Data技术  357


14.5.1 对象关系映射技术  357


14.5.2 添加Core Data支持  358


14.5.3 Core Data栈  359


14.6 案例:采用Core Data重构MyNotes应用  360


14.6.1 建模和生成实体  360


14.6.2 Core Data栈DAO  366


14.6.3 查询数据  367


14.6.4 修改数据  369


14.7 小结  370


第壹5章 数据交换格式  371


15.1 XML数据交换格式  372


15.1.1 XML文档结构  372


15.1.2 解析XML文档  373


15.2 案例:MyNotes应用读取XML数据  374


15.2.1 使用NSXML解析  376


15.2.2 使用TBXML解析  379


15.3 JSON数据交换格式  385


15.3.1 JSON文档结构  385


15.3.2 JSON数据编码/解码  386


15.4 案例:MyNotes应用JSON解码  387


15.5 小结  388


第壹6章 REST Web Service  389


16.1 概述  389


16.1.1 REST Web Service概念  389


16.1.2 HTTP协议  389


16.1.3 HTTPS协议  390


16.1.4 苹果ATS限制  390


16.2 使用NSURLSession  391


16.2.1 NSURLSession API  392


16.2.2 简单会话实现GET请求  393


16.2.3 默认会话实现GET请求  396


16.2.4 实现POST请求  397


16.2.5 下载数据  398


16.3 实例:使用NSURLSession重构MyNotes案例  400


16.3.1 插入方法  401


16.3.2 修改方法  402


16.3.3 删除方法  402


16.4 使用AFNetworking框架  405


16.4.1 比较ASIHTTPRequest、AFNetwork-ing和MKNetworkKit  405


16.4.2 安装和配置AFNetworking框架  405


16.4.3 实现GET请求  407


16.4.4 实现POST请求  408


16.4.5 下载数据  408


16.4.6 上传数据  410


16.5 使用为Swift设计的网络框架:Alamofire  412


16.5.1 安装和配置Alamofire框架  412


16.5.2 实现GET请求  413


16.5.3 实现POST请求  414


16.5.4 下载数据  414


16.5.5 上传数据  415


16.6 反馈网络信息改善用户体验  416


16.6.1 使用下拉刷新控件改善用户体验  416


16.6.2 使用活动指示器控件  419


16.6.3 使用网络活动指示器  420


16.7 小结  421


第三部分 进 阶 篇


第壹7章 定位服务  424


17.1 定位服务概述  424


17.1.1 定位服务编程  425


17.1.2 测试定位服务  428


17.2 管理定位服务  432


17.2.1 应用启动与停止下的定位服务管理  432


17.2.2 视图切换下的定位服务管理  432


17.2.3 应用前后台切换下的定位服务管理  433


17.2.4 设置自动暂停位置服务  436


17.2.5 后台位置服务管理  436


17.3 地理信息编码与反编码  437


17.3.1 地理信息反编码  437


17.3.2 实例:地理信息反编码  437


17.3.3 地理信息编码查询  438


17.3.4 实例:地理信息编码查询  439


17.4 小结  440


第壹8章 苹果地图应用  441


18.1 使用iOS苹果地图  441


18.1.1 显示地图  441


18.1.2 显示3D地图  445


18.2 添加标注  446


18.2.1 实现查询  447


18.2.2 在地图上添加标注  449


18.3 跟踪用户位置变化  450


18.4 使用程序外地图  451


18.5 小结  454


第壹9章 访问通讯录  455


19.1 通讯录的安全访问设置  455


19.2 使用Contacts框架读取信息  456


19.2.1 查询  457


19.2.2 读取单值属性  460


19.2.3 读取多值属性  461


19.2.4 读取图片属性  464


19.3 使用Contacts框架写入信息  464


19.3.1 创建  465


19.3.2 修改  467


19.3.3 删除  468


19.4 使用系统提供的界面  469


19.4.1 选择  470


19.4.2 显示和修改  472


19.5 小结  475


第20章 iOS 10应用扩展  476


20.1 应用扩展概述  476


20.1.1 iOS 10应用扩展种类  476


20.1.2 应用扩展工作原理  477


20.1.3 应用扩展的周期  478


20.2 Today应用扩展  478


20.2.1 使用Today应用扩展  479


20.2.2 实例:奥运会倒*时牌  480


20.3 开发表情包  483


20.3.1 iMessage应用  483


20.3.2 表情包  484


20.3.3 实例:开发表情包  484


20.4 Message框架  488


20.4.1 Message框架的主要API  488


20.4.2 消息布局  488


20.4.3 消息扩展界面的收缩和展开  489


20.4.4 消息应用的周期  490


20.4.5 消息会话  490


20.4.6 实例:高斯模糊滤镜  491


20.5 小结  494


第21章 重装上阵的iOS 10用户通知  495


21.1 用户通知概述  495


21.1.1 通知种类  495


21.1.2 通知界面  495


21.1.3 设置通知  497


21.2 开发本地通知  498


21.2.1 开发本地通知案例  498


21.2.2 请求授权  500


21.2.3 通知的创建与发送  501


21.2.4 通知接收后的处理  503


21.3 开发推送通知  503


21.3.1 推送通知机理  504


21.3.2 生成SSL证书  504


21.3.3 iOS客户端编程  513


21.3.4 在iOS设备上运行客户端  515


21.3.5 内容提供者推送通知  518


21.4 小结  519


第四部分 测试、调试和优化篇


第22章 找出程序中的bug——调试  522


22.1 Xcode调试工具  522


22.1.1 定位编译错误  522


22.1.2 查看和显示日志  523


22.1.3 设置和查看断点  524


22.1.4 调试工具  530


22.1.5 输出窗口  532


22.1.6 变量查看窗口  532


22.1.7 查看线程  533


22.2 LLDB调试工具  535


22.2.1 断点命令  535


22.2.2 观察点命令  537


22.2.3 查看变量和计算表达式命令  538


22.3 日志与断言输出  541


22.3.1 使用NSLog函数  541


22.3.2 使用断言  542


22.4 异常栈报告分析  543


22.4.1 跟踪异常栈  543


22.4.2 分析栈报告  545


22.5 在iOS设备上调试  546


22.5.1 Xcode设置  546


22.5.2 设备设置  546


22.6 Xcode设备管理工具  548


22.6.1 查看设备上的应用程序  548


22.6.2 设备日志  550


22.7 小结  551


第23章 iOS测试驱动与单测试  552


23.1 测试驱动的软件开发概述  552


23.1.1 测试驱动的软件开发流程  552


23.1.2 测试驱动的软件开发案例  553


23.1.3 iOS单测试框架  555


23.2 使用XCTest测试框架  555


23.2.1 添加XCTest到工程  555


23.2.2 编写XCTest测试方法  558


23.2.3 运行测试用例目标  561


23.2.4 分析测试报告  562


23.3 异步单测试  564


23.4 性能测试  567


23.4.1 测试用例代码  568


23.4.2 分析测试结果  568


23.5 小结  571


第24章 iOS应用UI测试  572


24.1 UI测试概述  572


24.2 添加UI测试到工程  572


24.2.1 创建工程时添加UI测试框架  572


24.2.2 在现有工程中添加UI测试用例目标  573


24.3 录制脚本  575


24.3.1 录制之前的准备  575


24.3.2 录制过程  575


24.3.3 修改录制脚本  577


24.4 访问UI素  577


24.4.1 UI素的层次结构树  577


24.4.2 UI测试中相关API  579


24.5 表示逻辑组件测试ZUI佳实践  579


24.5.1 备忘录查询操作  580


24.5.2 增加备忘录操作  580


24.5.3 删除备忘录操作  581


24.5.4 显示备忘录详细信息操作  582


24.6 小结  582


第25章 让你的程序“飞”起来——性能优化  583


25.1 内存优化  583


25.1.1 内存管理  583


25.1.2 使用Analyze工具检查内存泄漏  583


25.1.3 使用Instruments工具检查内存泄漏  587


25.1.4 使用Instruments工具检查僵尸对象  592


25.1.5 autorelease的使用问题  594


25.1.6 响应内存警告  595


25.2 优化资源文件  596


25.2.1 图片文件优化  597


25.2.2 音频文件优化  598


25.3 延迟加载  599


25.3.1 资源文件的延迟加载  599


25.3.2 故事板文件的延迟加载  603


25.3.3 XIB文件的延迟加载  605


25.4 数据持久化的优化  607


25.4.1 使用文件  607


25.4.2 使用SQLite数据库  611


25.4.3 使用Core Data  612


25.5 可重用对象的使用  613


25.5.1 表视图中的可重用对象  614


25.5.2 集合视图中的可重用对象  615


25.5.3 地图视图中的可重用对象  617


25.6 并发处理  618


25.6.1 一些概念  618


25.6.2 主线程阻塞问题  618


25.6.3 选择NSThread、NSOperation还是GCD  619


25.6.4 GCD技术  619


25.7 小结  620


第五部分 实 战 篇


第26章 管理好你的程序代码——代码版本控制  622


26.1 概述  622


26.1.1 版本控制历史  622


26.1.2 基本概念  623


26.2 Git代码版本控制  623


26.2.1 服务器搭建  623


26.2.2 Gitolite服务器管理  625


26.2.3 Git常用命令  627


26.2.4 Git分支  628


26.2.5 Git协同开发  632


26.2.6 Xcode中Git的配置与使用  634


26.3 GitHub代码托管服务  642


26.3.1 创建和配置GitHub账号  642


26.3.2 创建代码库  645


26.3.3 删除代码库  646


26.3.4 派生代码库  647


26.3.5 管理组织  650


26.4 小结  653


第27章 项目依赖管理  654


27.1 使用CocoaPods工具管理依赖  654


27.1.1 安装CocoaPods  654


27.1.2 搜索库  655


27.1.3 项目与第三方库搭配形式  656


27.1.4 实例:静态链接库形式管理依赖  657


27.1.5 实例:框架形式管理依赖  659


27.2 使用Carthage工具管理依赖  660


27.2.1 安装Carthage  660


27.2.2 项目与第三方库搭配形式  661


27.2.3 Cartfile文件  661


27.2.4 实例:重构MyNotes依赖关系  662


27.3 小结  664


第28章 把应用放到App Store上  665


28.1 收官  665


28.1.1 在Xcode 中添加图标  665


28.1.2 在Xcode中添加启动界面  668


28.1.3 调整Identity和Deployment Info属性  671


28.2 为发布进行编译  672


28.2.1 创建*发者证书  672


28.2.2 创建App ID  675


28.2.3 创建描述文件  676


28.2.4 发布编译  679


28.3 发布上架  680


28.3.1 创建应用  681


28.3.2 应用定价  683


28.3.3 基本信息输入  684


28.3.4 上传应用  687


28.3.5 提交审核  689


28.4 常见审核不通过的原因  691


28.4.1 功能问题  691


28.4.2 用户界面问题  691


28.4.3 商业问题  691


28.4.4 不当内容  691


28.4.5 其他问题  692


28.5 小结  692


第29章 iOS开发项目实战——2020东京奥运会应用开发及 App Store发布  693


29.1 应用分析与设计  693


29.1.1 应用概述  693


29.1.2 需求分析  693


29.1.3 原型设计  694


29.1.4 数据库设计  694


29.2 任务1:创建应用工程  695


29.2.1 迭代1.1:创建工程  696


29.2.2 迭代1.2:发布到GitHub  696


29.3 任务2:数据库与数据持久化逻辑组件开发  696


29.3.1 迭代2.1:编写数据库DDL脚本  696


29.3.2 迭代2.2:插入初始数据到数据库  697


29.3.3 迭代2.3:数据库版本控制  697


29.3.4 迭代2.4:配置数据持久化逻辑组件  698


29.3.5 迭代2.5:编写实体类  698


29.3.6 迭代2.6:编写DAO类  700


29.3.7 迭代2.7:数据库帮助类DBHelper  704


29.3.8 迭代2.8:发布到GitHub  706


29.4 任务3:表示逻辑组件开发  706


29.4.1 迭代3.1:使用资源目录管理图片和图标资源  707


29.4.2 迭代3.2:根据原型设计初步设计故事板  708


29.4.3 迭代3.3:“首页”模块  709


29.4.4 迭代3.4:“比赛项目”模块  710


29.4.5 迭代3.5:“比赛日程”模块  714


29.4.6 迭代3.6:“倒*时”模块  718


29.4.7 迭代3.7:“关于我们”模块  719


29.4.8 迭代3.8:发布到GitHub  720


29.5 任务4:收工  720


29.5.1 迭代4.1:添加图标  720


29.5.2 迭代4.2:设计和添加启动界面  720


29.5.3 迭代4.3:性能测试与改善  721


29.5.4 迭代4.4:发布到GitHub  722


29.5.5 迭代4.5:在App Store上发布应用  722


29.6 小结  722



内容介绍

本书是iOS开发quanwei教程,以Swift和Objective-C两种语言进行讲解。书中分5部分介绍如何从零起步编写并上线iOS应用:DIYI部分介绍iOS开发的基础知识,包括界面构建技术、基本控件、协议、表视图、界面布局、屏幕适配、导航、iPad应用开发、iOS设备手势、Quartz 2D、iOS动画等;第2部分介绍本地数据持久化、数据交换格式和Web


Service,第三部分为进阶篇,介绍了定位服务、苹果地图、Contacts框架、应用扩展、用户通知等内容;第四部分介绍测试、调试和优化等相关知识;第五部分为实战篇,涵盖代码版本管理、项目依赖管理、App Store发布流程,以及一个真实iOS应用的设计、编程、测试与发布过程。


与上一版相比,本书不仅基于iOS 10进行了全面更新,还增加并修订了设备手势、Quartz 2D、动画、用户扩展、用户通知、Core Data等内容。


本书适合iOS开发人员阅读。


_310x310.jpg
热门设计服务