网站颜色:

iOS开发指南第5版关东升 著 图形图像/多媒体(新)专业科技 新华书店正版图书籍 人民邮电出版社

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



iOS开发指南

作  者:关东升 著
定  价:119
出 版 社:人民邮电出版社
出版日期:(咨询特价)年05月01日
页  数:722
装  帧:简装
ISBN:30
主编推荐

畅销书全新升级,累计印数6万多册 Swift和Objective-C双语讲解 新增手势识别、Quartz 2D绘图技术、动画技术、用户扩展、用户通知、Core Data等数百个项目案例 + 一个真实项目开发全过程 涵盖测试驱动开发、性能优化、版本控制和程序调试等

目录
部分  基  础  篇章  开篇综述  21.1  iOS概述  21.1.1  iOS介绍  21.1.2  iOS 10新特性  21.2  开发环境及开发工具  31.3  本书约定  41.3.1  案例代码约定  41.3.2  图示的约定  51.3.3  方法命名约定  61.3.4  构造函数命名约定  71.3.5  错误处理约定  7第2章  个iOS应用程序  82.1  创建HelloWorld工程  82.1.1  通过Xcode创建工程  92.1.2  添加标签  112.1.3  运行应用  132.1.4  Xcode中的iOS工程模板  132.1.5  应用剖析  142.2  应用周期  162.2.1  非运行状态——应用启动场景  182.2.2  点击Home键——应用退出场景  182.2.3  挂起重新运行场景  212.2.4  内存清除:应用终止场景  212.3  设置产品属性  222.3.1  Xcode中的工程和目标  222.3.2  设置常用的产品属性  242.4  iOS API简介  262.4.1  API概述  262.4.2  如何使用API帮助文档  262.5  小结  28第3章  Cocoa Touch框架与构建应用界面  293.1  视图控制器  293.1.1  视图控制器种类  293.1.2  视图的周期  293.2  视图  303.2.1  UIView继承层次结构  303.2.2  视图分类  323.2.3  应用界面构建层次  333.3  使用故事板构建界面  343.3.1  什么适事板  343.3.2  场景和过渡  373.4  使用XIB文件构建界面  383.4.1  重构HelloWorld  383.4.2  XIB与故事板比较  423.5  使用纯代码构建界面  423.5.1  重构HelloWorld  423.5.2  视图的几个重要属性  443.6  三种构建界面技术讨论  463.6.1  所见即所得  463.6.2  原型驱动开发  463.6.3  团队协同开发  473.7  小结  47第4章  UIView与视图  484.1  标签与按钮  484.1.1  Interface Builder实现  484.1.2  代码实现  514.2  事件处理  534.2.1  Interface Builder实现  534.2.2  代码实现  554.3  访问视图  574.3.1  Interface Builder实现  574.3.2  代码实现  584.4  TextField和TextView  604.4.1  Interface Builder实现  604.4.2  代码实现  624.4.3  键盘的打开和关闭  644.4.4  关闭和打开键盘的通知  644.4.5  键盘的种类  654.5  开关控件、分段控件和滑块控件  674.5.1  开关控件  674.5.2  分段控件  694.5.3  滑块控件  704.6  Web视图:WKWebView类  724.7  警告框和操作表  774.7.1  使用UIAlertController实现警告框  774.7.2  使用UIAlertController实现操作表  794.8  等待相关的控件与进度条  814.8.1  活动指示器ActivityIndicatorView  814.8.2  进度条ProgressView  834.9  工具栏和导航栏  864.9.1  工具栏  864.9.2  导航栏  904.10  小结  95第5章  委托协议、数据源协议与不错视图  965.1  视图中的委托协议和数据源协议  965.2  选择器  965.2.1  日期选择器  965.2.2  普通选择器  1015.2.3  数据源协议与委托协议  1065.3  集合视图  1085.3.1  集合视图的组成  1085.3.2  集合视图数据源协议与委托协议  1095.4  案例:奥运会比赛项目  1095.4.1  创建工程  1105.4.2  自定义集合视图单格  1105.4.3  添加集合视图  1125.4.4  实现数据源协议  1145.4.5  实现委托协议  1155.5  小结  115第6章  表视图  1166.1  概述  1166.1.1  表视图的组成  1166.1.2  表视图的相关类  1176.1.3  表视图分类  1176.1.4  单格的组成和样式  1196.1.5  数据源协议与委托协议  1216.2  简单表视图  1226.2.1  实现协议方法  1226.2.2  UIViewController根视图控制器  1236.2.3  UITableViewController根视图控制器  1296.3  自定义表视图单格  1336.3.1  Interface Builder实现  1336.3.2  代码实现  1376.4  添加搜索栏  1386.5  分节表视图  1436.5.1  添加索引  1436.5.2  分组  1466.6  插入和删除单格  1476.6.1  Interface Builder实现  1496.6.2  代码实现  1546.7  移动单格  1556.8  表视图UI设计模式  1576.8.1  分页模式  1576.8.2  下拉刷新模式  1586.8.3  下拉刷新控件  1596.9  小结  160第7章  界面布局  1617.1  界面布局概述  1617.1.1  表单布局模式  1617.1.2  列表布局模式  1617.1.3  网格布局模式  1627.2  iOS中各种“栏”  1627.3  传统界面布局问题  1637.4  Auto Layout布局技术  1647.4.1  在Interface Builder中管理Auto Layout约束  1647.4.2  案例:Auto Layout布局  1647.5  静态表布局  1697.5.1  什么是静态表  1697.5.2  案例:iMessage应用登录界面  1707.6  使用堆视图StackView  1747.6.1  堆视图与布局  1747.6.2  案例:堆视图布局  1757.7  小结  180第8章  屏幕适配  1818.1  iOS 屏幕的多样性  1818.1.1  iOS屏幕介绍  1818.1.2  iOS的3种分辨率  1828.1.3  获得iOS设备的屏幕信息  1838.2  Size Class与iOS多屏幕适配  1848.2.1  在Xcode 6和Xcode 7中使用Size Class技术  1848.2.2  Size Class的九宫格  1858.2.3  Size Class的四个象限  1868.2.4  在Xcode 8中使用Size Class  1878.2.5  案例:使用Size Class  1908.3  资源目录与图片资源适配  1928.4  小结  195第9章  视图控制器与导航模式  1969.1  概述  1969.1.1  视图控制器的种类  1969.1.2  导航模式  1969.2  模态视图  1979.2.1  Interface Builder实现  1999.2.2  代码实现  2059.3  平铺导航  2069.3.1  应用场景  2069.3.2  基于分屏导航的实现  2089.3.3  基于电子书导航的实现  2139.4  标签导航  2199.4.1  应用场景  2199.4.2  Interface Builder实现  2209.4.3  代码实现  2239.5  树形结构导航  2259.5.1  应用场景  2259.5.2  Interface Builder实现  2269.5.3  代码实现  2339.6  组合使用导航模式  2359.6.1  应用场景  2359.6.2  Interface Builder实现  2369.6.3  代码实现  2439.7  小结  2460章  iPad应用开发  24710.1  iPad与iPhone应用开发的差异  24710.1.1  应用场景不同  24710.1.2  导航模式不同  24710.1.3  API不同  24710.2  iPad树形结构导航  24810.2.1  “邮件”应用中的树形结构导航  24810.2.2  Master-Detail应用程序模板  24910.2.3  使用Interface Builder实现SplitViewSample案例  25410.2.4  使用代码实现SplitViewSample案例  25810.3  iPad模态视图  26110.3.1  “邮件”应用中的模态导航  26110.3.2  iPad模态导航相关API  26210.3.3  使用Interface Builder实现ModalViewSample案例  26410.3.4  使用代码实现ModalViewSample案例  26810.4  Popover视图  27110.4.1  Popover相关API  27210.4.2  PopoverViewSample案例  27210.5  分屏多任务  27610.5.1  Slide Over多任务  27610.5.2  分屏视图多任务  27810.5.3  画中画多任务  28010.6  iPad分屏多任务适配开发  28010.6.1  分屏多任务前提条件  28010.6.2  分屏多任务适配  28110.7  小结  2821章  手势识别  28311.1  手势种类  28311.2  手势识别器  28411.2.1  视图对象与手势识别  28411.2.2  手势识别状态  28511.2.3  实例:识别Tap手势  28511.2.4  实例:识别Long Press手势  29011.2.5  实例:识别Pan手势  29111.2.6  实例:Swipe手势  29311.2.7  实例:Rotation手势  29511.2.8  实例:Pinch手势  29711.2.9  实例:Screen Edge Pan手势  29911.3  小结  3012章  Quartz 2D绘图技术  30212.1  绘制技术基础  30212.1.1  视图绘制周期  30212.1.2  实例:填充屏幕  30212.1.3  填充与描边  30512.1.4  绘制图像和文本  30612.2  Quartz图形上下文  30812.3  Quartz路径  30912.3.1  Quartz路径概述  30912.3.2  实例:使用贝塞尔曲线  31112.4  Quartz坐标变换  31212.4.1  坐标系  31212.4.2  2D图形的基本变换  31512.4.3  CTM变换  31712.4.4  仿射变换  32212.5  小结  3223章  动画技术  32313.1  视图动画  32313.1.1  动画块  32313.1.2  动画结束的处理  32513.1.3  过渡动画  32613.2  Core Animation框架  32913.2.1  图层  32913.2.2  隐式动画  33113.2.3  显式动画  33313.2.4  关键帧动画  33513.2.5  使用路径  33613.3  小结  338第二部分  数据与网络通信篇4章  数据持久化  34014.1  概述  34014.1.1  沙箱目录  34014.1.2  持久化方式  34114.2  实例:MyNotes应用  34114.3  属性列表  34314.4  使用SQLite数据库  34914.4.1  SQLite数据类型  35014.4.2  添加SQLite3库  35014.4.3  配置Swift环境  35114.4.4  创建数据库  35114.4.5  查询数据  35314.4.6  修改数据  35514.5  iOS 10中的Core Data技术  35714.5.1  对象关系映射技术  35714.5.2  添加Core Data支持  35814.5.3  Core Data栈  35914.6  案例:采用Core Data重构MyNotes应用  36014.6.1  建模和生成实体  36014.6.2  Core Data栈DAO  36614.6.3  查询数据  36714.6.4  修改数据  36914.7  小结  3705章  数据交换格式  37115.1  XML数据交换格式  37215.1.1  XML文档结构  37215.1.2  解析XML文档  37315.2  案例:MyNotes应用读取XML数据  37415.2.1  使用NSXML解析  37615.2.2  使用TBXML解析  37915.3  JSON数据交换格式  38515.3.1  JSON文档结构  38515.3.2  JSON数据编码/解码  38615.4  案例:MyNotes应用JSON解码  38715.5  小结  3886章  REST Web Service  38916.1  概述  38916.1.1  REST Web Service概念  38916.1.2  HTTP协议  38916.1.3  HTTPS协议  39016.1.4  苹果ATS限制  39016.2  使用NSURLSession  39116.2.1  NSURLSession API  39216.2.2  简单会话实现GET请求  39316.2.3  默认会话实现GET请求  39616.2.4  实现POST请求  39716.2.5  数据  39816.3  实例:使用NSURLSession重构MyNotes案例  40016.3.1  插入方法  40116.3.2  修改方法  40216.3.3  删除方法  40216.4  使用AFNetworking框架  40516.4.1  比较ASIHTTPRequest、AFNetworking和MKNetworkKit  40516.4.2  安装和配置AFNetworking框架  40516.4.3  实现GET请求  40716.4.4  实现POST请求  40816.4.5  数据  40816.4.6  上传数据  41016.5  使用为Swift设计的网络框架:Alamofire  41216.5.1  安装和配置Alamofire框架  41216.5.2  实现GET请求  41316.5.3  实现POST请求  41416.5.4  数据  41416.5.5  上传数据  41516.6  反馈网络信息改善用户体验  41616.6.1  使用下拉刷新控件改善用户体验  41616.6.2  使用活动指示器控件  41916.6.3  使用网络活动指示器  42016.7  小结  421第三部分  进 阶 篇7章  定位服务  42417.1  定位服务概述  42417.1.1  定位服务编程  42517.1.2  测试定位服务  42817.2  管理定位服务  43217.2.1  应用启动与停止下的定位服务管理  43217.2.2  视图切换下的定位服务管理  43217.2.3  应用前后台切换下的定位服务管理  43317.2.4  设置自动暂停位置服务  43617.2.5  后台位置服务管理  43617.3  地理信息编码与反编码  43717.3.1  地理信息反编码  43717.3.2  实例:地理信息反编码  43717.3.3  地理信息编码查询  43817.3.4  实例:地理信息编码查询  43917.4  小结  4408章  苹果地图应用  44118.1  使用iOS苹果地图  44118.1.1  显示地图  44118.1.2  显示3D地图  44518.2  添加标注  44618.2.1  实现查询  44718.2.2  在地图上添加标注  44918.3  跟踪用户位置变化  45018.4  使用程序外地图  45118.5  小结  4549章  访问通讯录  45519.1  通讯录的安全访问设置  45519.2  使用Contacts框架读取信息  45619.2.1  查询  45719.2.2  读取单值属性  46019.2.3  读取多值属性  46119.2.4  读取图片属性  46419.3  使用Contacts框架写入信息  46419.3.1  创建  46519.3.2  修改  46719.3.3  删除  46819.4  使用系统提供的界面  46919.4.1  选择  47019.4.2  显示和修改  47219.5  小结  475第20章  iOS 10应用扩展  47620.1  应用扩展概述  47620.1.1  iOS 10应用扩展种类  47620.1.2  应用扩展工作原理  47720.1.3  应用扩展的周期  47820.2  Today应用扩展  47820.2.1  使用Today应用扩展  47920.2.2  实例:奥运会倒计时牌  48020.3  开发表情包  48320.3.1  iMessage应用  48320.3.2  表情包  48420.3.3  实例:开发表情包  48420.4  Message框架  48820.4.1  Message框架的主要API  48820.4.2  消息布局  48820.4.3  消息扩展界面的收缩和展开  48920.4.4  消息应用的周期  49020.4.5  消息会话  49020.4.6  实例:高斯模糊滤镜  49120.5  小结  494第21章  重装上阵的iOS 10用户通知  49521.1  用户通知概述  49521.1.1  通知种类  49521.1.2  通知界面  49521.1.3  设置通知  49721.2  开发本地通知  49821.2.1  开发本地通知案例  49821.2.2  请求授权  50021.2.3  通知的创建与发送  50121.2.4  通知接收后的处理  50321.3  开发推送通知  50321.3.1  推送通知机理  50421.3.2  生成SSL证书  50421.3.3  iOS客户端编程  51321.3.4  在iOS设备上运行客户端  51521.3.5  内容提供者推送通知  51821.4  小结  519第四部分  测试、调试和优化篇第22章  找出程序中的bug——调试  52222.1  Xcode调试工具  52222.1.1  定位编译错误  52222.1.2  查看和显示日志  52322.1.3  设置和查看断点  52422.1.4  调试工具  53022.1.5  输出窗口  53222.1.6  变量查看窗口  53222.1.7  查看线程  53322.2  LLDB调试工具  53522.2.1  断点命令  53522.2.2  观察点命令  53722.2.3  查看变量和计算表达式命令  53822.3  日志与断言输出  54122.3.1  使用NSLog函数  54122.3.2  使用断言  54222.4  异常栈报告分析  54322.4.1  跟踪异常栈  54322.4.2  分析栈报告  54522.5  在iOS设备上调试  54622.5.1  Xcode设置  54622.5.2  设备设置  54622.6  Xcode设备管理工具  54822.6.1  查看设备上的应用程序  54822.6.2  设备日志  55022.7  小结  551第23章  iOS测试驱动与单测试  55223.1  测试驱动的软件开发概述  55223.1.1  测试驱动的软件开发流程  55223.1.2  测试驱动的软件开发案例  55323.1.3  iOS单测试框架  55523.2  使用XCTest测试框架  55523.2.1  添加XCTest到工程  55523.2.2  编写XCTest测试方法  55823.2.3  运行测试用例目标  56123.2.4  分析测试报告  56223.3  异步单测试  56423.4  性能测试  56723.4.1  测试用例代码  56823.4.2  分析测试结果  56823.5  小结  571第24章  iOS应用UI测试  57224.1  UI测试概述  57224.2  添加UI测试到工程  57224.2.1  创建工程时添加UI测试框架  57224.2.2  在现有工程中添加UI测试用例目标  57324.3  录制脚本  57524.3.1  录制之前的准备  57524.3.2  录制过程  57524.3.3  修改录制脚本  57724.4  访问UI素  57724.4.1  UI素的层次结构树  57724.4.2  UI测试中相关API  57924.5  表示逻辑组件测试最佳实践  57924.5.1  备忘录查询操作  58024.5.2  增加备忘录操作  58024.5.3  删除备忘录操作  58124.5.4  显示备忘录详细信息操作  58224.6  小结  582第25章  让你的程序“飞”起来——性能优化  58325.1  内存优化  58325.1.1  内存管理  58325.1.2  使用Analyze工具检查内存泄漏  58325.1.3  使用Instruments工具检查内存泄漏  58725.1.4  使用Instruments工具检查僵尸对象  59225.1.5  autorelease的使用问题  59425.1.6  响应内存警告  59525.2  优化资源文件  59625.2.1  图片文件优化  59725.2.2  音频文件优化  59825.3  延迟加载  59925.3.1  资源文件的延迟加载  59925.3.2  故事板文件的延迟加载  60325.3.3  XIB文件的延迟加载  60525.4  数据持久化的优化  60725.4.1  使用文件  60725.4.2  使用SQLite数据库  61125.4.3  使用Core Data  61225.5  可重用对象的使用  61325.5.1  表视图中的可重用对象  61425.5.2  集合视图中的可重用对象  61525.5.3  地图视图中的可重用对象  61725.6  并发处理  61825.6.1  一些概念  61825.6.2  主线程阻塞问题  61825.6.3  选择NSThread、NSOperation还是GCD  61925.6.4  GCD技术  61925.7  小结  620第五部分  实 战 篇第26章  管理好你的程序代码——代码版本控制  62226.1  概述  62226.1.1  版本控制历史  62226.1.2  基本概念  62326.2  Git代码版本控制  62326.2.1  服务器搭建  62326.2.2  Gitolite服务器管理  62526.2.3  Git常用命令  62726.2.4  Git分支  62826.2.5  Git协同开发  63226.2.6  Xcode中Git的配置与使用  63426.3  GitHub代码托管服务  64226.3.1  创建和配置GitHub账号  64226.3.2  创建代码库  64526.3.3  删除代码库  64626.3.4  派生代码库  64726.3.5  管理组织  65026.4  小结  653第27章  项目依赖管理  65427.1  使用CocoaPods工具管理依赖  65427.1.1  安装CocoaPods  65427.1.2  搜索库  65527.1.3  项目与第三方库搭配形式  65627.1.4  实例:静态链接库形式管理依赖  65727.1.5  实例:框架形式管理依赖  65927.2  使用Carthage工具管理依赖  66027.2.1  安装Carthage  66027.2.2  项目与第三方库搭配形式  66127.2.3  Cartfile文件  66127.2.4  实例:重构MyNotes依赖关系  66227.3  小结  664第28章  把应用放到App Store上  66528.1  收官  66528.1.1  在Xcode 中添加图标  66528.1.2  在Xcode中添加启动界面  66828.1.3  调整Identity和Deployment Info属性  67128.2  为发布进行编译  67228.2.1  创建开发者证书  67228.2.2  创建App ID  67528.2.3  创建描述文件  67628.2.4  发布编译  67928.3  发布上架  68028.3.1  创建应用  68128.3.2  应用定价  68328.3.3  基本信息输入  68428.3.4  上传应用  68728.3.5  提交审核  68928.4  常见审核不通过的原因  69128.4.1  功能问题  69128.4.2  用户界面问题  69128.4.3  商业问题  69128.4.4  不当内容  69128.4.5  其他问题  69228.5  小结  692第29章  iOS开发项目实战——2020东京奥运会应用开发及 App Store发布  69329.1  应用分析与设计  69329.1.1  应用概述  69329.1.2  需求分析  69329.1.3  原型设计  69429.1.4  数据库设计  69429.2  任务1:创建应用工程  69529.2.1  迭代1.1:创建工程  69629.2.2  迭代1.2:发布到GitHub  69629.3  任务2:数据库与数据持久化逻辑组件开发  69629.3.1  迭代2.1:编写数据库DDL脚本  69629.3.2  迭代2.2:插入初始数据到数据库  69729.3.3  迭代2.3:数据库版本控制  69729.3.4  迭代2.4:配置数据持久化逻辑组件  69829.3.5  迭代2.5:编写实体类  69829.3.6  迭代2.6:编写DAO类  70029.3.7  迭代2.7:数据库帮助类DBHelper  70429.3.8  迭代2.8:发布到GitHub  70629.4  任务3:表示逻辑组件开发  70629.4.1  迭代3.1:使用资源目录管理图片和图标资源  70729.4.2  迭代3.2:根据原型设计初步设计故事板  70829.4.3  迭代3.3:“首页”模块  70929.4.4  迭代3.4:“比赛项目”模块  71029.4.5  迭代3.5:“比赛日程”模块  71429.4.6  迭代3.6:“倒计时”模块  71829.4.7  迭代3.7:“关于我们”模块  71929.4.8  迭代3.8:发布到GitHub  72029.5  任务4:收工  72029.5.1  迭代4.1:添加图标  72029.5.2  迭代4.2:设计和添加启动界面  72029.5.3  迭代4.3:性能测试与改善  72129.5.4  迭代4.4:发布到GitHub  72229.5.5  迭代4.5:在App Store上发布应用  72229.6  小结  722
内容虚线

内容简介

本书是iOS开发权V教程,以Swift和Objective-C两种语言进行讲解。书中分5部分介绍如何从零起步编写并上线iOS 应用:部分介绍iOS开发的基础知识,包括界面构建技术、基本控件、协议、表视图、界面布局、屏幕适配、导航、iPad应用开发、iOS设备手势、Quartz 2D、iOS动画等;第二部分介绍本地数据持久化、数据交换格式和Web Service,第三部分为进阶篇,介绍了定位服务、苹果地图、Contacts框架、应用扩展、用户通知等内容;第四部分介绍测试、调试和优化等相关知识;第五部分为实战篇,涵盖代码版本管理、项目依赖管理、App Store发布流程,以及一个真实iOS应用的设计、编程、测试与发布过程。与上一版相比,本书不仅基于iOS 10进行了全面更新,还增加并修订了设备手势、Quartz 2D、动画、用户扩展、用户通知、Core Data等内容。本书适合iOS 开发......

作者简介

关东升 著

【关东升】 一个在IT领域摸爬滚打20年的程序员、培训师、作者,除本书外,还著有《从零开始学Swift》《Android网络游戏开发实战》《Cocos2d-x实战》系列等书。

热门设计服务