- 网页设计
- 整站网页设计
- 网站模板设计
- 网站开发
- 综合门户网开发
- 企业网站开发
- 电子商务网站开发
- 资讯网站开发
- 团购网站开发
- 手机网站开发
- 宣传展示网站
- 网站功能开发
- 网站特效制作
- 应用软件开发
- 手机应用软件
- 计算机应用软件
- 软件美工
- 程序修改
- 仿网站开发
- 脚本插件
- 软件测试
- 网站改版
- 企业办公系统
- 软件汉化
- 软件界面皮肤
- 企业办公系统界面
- 应用移植
- Android开发
- IOS开发
- 应用汉化
- 安卓系统定制
- 网店装修
正版 iOS开发指南 从HelloWorld到 App Store上架第5版 ios 9开发指南 swift编程 ios编程 ObjectiveC程序教程教材书籍.
- 产品名称:iOS开发指南-从HelloWor...
- 书名:iOS开发指南-从HelloWorld到AppStore上架(第5版)
- 是否是套装:否
- 书名:iOS开发指南-从HelloWorld到AppStore上架(第5版)
- 出版社名称:人民邮电出版社
- 定价:119.00元
- 作者:关东升
商品参数
书 名:iOS开发指南(第5版)
作者:关东升
ISBN (咨询特价)
出 版 社:人民邮电出版社
出版时间:
印刷时间:
字 数:1523千字
页 数:页
开 本:16开
包 装:平装
重 量:g
定 价:(咨询特价)
编辑推荐:
畅销书全新升级,累计印数6万多册
Swift和Objective-C双语讲解
新增手势识别、Quartz 2D绘图技术、动画技术、用户扩展、用户通知、Core Data等
数百个项目案例 + 一个真实项目开发全过程
涵盖测试驱动开发、性能优化、版本控制和程序调试等
内容简介:
本书是iOS 开发*教程,以Swift 和Objective-C两种语言进行讲解。书中分5部分介绍如何从零起步编写并上线iOS应用:第1部分介绍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实战》系列等书。
目录
DIYI部分 基 础 篇
第1章 开篇综述2
1.1iOS概述2
1.1.1iOS介绍2
1.1.2iOS 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.4Xcode中的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.1Xcode中的工程和目标22
2.3.2设置常用的产品属性24
2.4iOS API简介26
2.4.1API概述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.1UIView继承层次结构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重构HelloWorld38
3.4.2XIB与故事板比较42
3.5使用纯代码构建界面42
3.5.1重构HelloWorld42
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.1Interface Builder实现48
4.1.2代码实现51
4.2事件处理53
4.2.1Interface Builder实现53
4.2.2代码实现55
4.3访问视图57
4.3.1Interface Builder实现57
4.3.2代码实现58
4.4TextField和TextView60
4.4.1Interface 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.6Web视图:WKWebView类72
4.7警告框和操作表77
4.7.1使用UIAlertController实现警告框77
4.7.2使用UIAlertController实现操作表79
4.8等待相关的控件与进度条81
4.8.1活动指示器ActivityIndicatorView81
4.8.2进度条ProgressView83
4.9工具栏和导航栏86
4.9.1工具栏86
4.9.2导航栏90
(咨询特价)小结95
第5章 委托协议、数据源协议与高级视图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.2UIViewController根视图控制器123
6.2.3UITableViewController根视图控制器129
6.3自定义表视图单格133
6.3.1Interface 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.1Interface 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.2iOS中各种“栏”162
7.3传统界面布局问题163
7.4Auto 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使用堆视图StackView174
7.6.1堆视图与布局174
7.6.2案例:堆视图布局175
7.7小结180
第8章 屏幕适配181
8.1iOS屏幕的多样性181
8.1.1iOS屏幕介绍181
8.1.2iOS的3种分辨率182
8.1.3获得iOS设备的屏幕信息183
8.2Size Class与iOS多屏幕适配184
8.2.1在Xcode 6和Xcode 7中使用SizeClass技术184
8.2.2Size Class的九宫格185
8.2.3Size Class的四个象限186
8.2.4在Xcode 8中使用Size Class187
8.2.5案例:使用Size Class190
8.3资源目录与图片资源适配192
8.4小结195
第9章 视图控制器与导航模式196
9.1概述196
9.1.1视图控制器的种类196
9.1.2导航模式196
9.2模态视图197
9.2.1Interface 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.2Interface Builder实现220
9.4.3代码实现223
9.5树形结构导航225
9.5.1应用场景225
9.5.2Interface Builder实现226
9.5.3代码实现233
9.6组合使用导航模式235
9.6.1应用场景235
9.6.2Interface Builder实现236
9.6.3代码实现243
9.7小结246
第10章iPad应用开发247
10.1iPad与iPhone应用开发的差异247
10.1.1应用场景不同247
10.1.2导航模式不同247
10.1.3API不同247
10.2iPad树形结构导航248
10.2.1 “邮件”应用中的树形结构导航248
10.2.2Master-Detail应用程序模板249
10.2.3使用Interface Builder实现SplitViewSample案例254
10.2.4使用代码实现SplitViewSample案例258
10.3iPad模态视图261
10.3.1 “邮件”应用中的模态导航261
10.3.2iPad模态导航相关API262
10.3.3使用Interface Builder实现ModalViewSample案例264
10.3.4使用代码实现ModalViewSample案例268
10.4Popover视图271
10.4.1Popover相关API272
10.4.2PopoverViewSample案例272
10.5分屏多任务276
10.5.1Slide Over多任务276
10.5.2分屏视图多任务278
10.5.3画中画多任务280
10.6iPad分屏多任务适配开发280
10.6.1分屏多任务前提条件280
10.6.2分屏多任务适配281
10.7小结282
第11章 手势识别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
第12章Quartz 2D绘图技术302
12.1绘制技术基础302
12.1.1视图绘制周期302
12.1.2实例:填充屏幕302
12.1.3填充与描边305
12.1.4绘制图像和文本306
12.2Quartz图形上下文308
12.3Quartz路径309
12.3.1Quartz路径概述309
12.3.2实例:使用贝塞尔曲线311
12.4Quartz坐标变换312
12.4.1坐标系312
12.4.22D图形的基本变换315
12.4.3CTM变换317
12.4.4仿射变换322
12.5小结322
第13章 动画技术323
13.1视图动画323
13.1.1动画块323
13.1.2动画结束的处理325
13.1.3过渡动画326
13.2Core 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
第二部分 数据与网络通信篇
第14章 数据持久化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.1SQLite数据类型350
14.4.2添加SQLite3库350
14.4.3配置Swift环境351
14.4.4创建数据库351
14.4.5查询数据353
14.4.6修改数据355
14.5iOS 10中的Core Data技术357
14.5.1对象关系映射技术357
14.5.2添加Core Data支持358
14.5.3Core Data栈359
14.6案例:采用Core Data重构MyNotes应用360
14.6.1建模和生成实体360
14.6.2Core Data栈DAO366
14.6.3查询数据367
14.6.4修改数据369
14.7小结370
第15章 数据交换格式371
15.1XML数据交换格式372
15.1.1XML文档结构372
15.1.2解析XML文档373
15.2案例:MyNotes应用读取XML数据374
15.2.1使用NSXML解析376
15.2.2使用TBXML解析379
15.3JSON数据交换格式385
15.3.1JSON文档结构385
15.3.2JSON数据编码/解码386
15.4案例:MyNotes应用JSON解码387
15.5小结388
第16章REST Web Service389
16.1概述389
16.1.1REST Web Service概念389
16.1.2HTTP协议389
16.1.3HTTPS协议390
16.1.4苹果ATS限制390
16.2使用NSURLSession391
16.2.1NSURLSession API392
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和MKNetworkKit405
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设计的网络框架:Alamofire412
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
第三部分 进 阶 篇
第17章 定位服务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
第18章 苹果地图应用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
第19章 访问通讯录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.1iOS 10应用扩展种类476
20.1.2应用扩展工作原理477
20.1.3应用扩展的周期478
20.2Today应用扩展478
20.2.1使用Today应用扩展479
20.2.2实例:奥运会倒计时牌480
20.3开发表情包483
20.3.1iMessage应用483
20.3.2表情包484
20.3.3实例:开发表情包484
20.4Message框架488
20.4.1Message框架的主要API488
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.3iOS客户端编程513
21.3.4在iOS设备上运行客户端515
21.3.5内容提供者推送通知518
21.4小结519
第四部分 测试、调试和优化篇
第22章 找出程序中的bug——调试522
22.1Xcode调试工具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.2LLDB调试工具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.1Xcode设置546
22.5.2设备设置546
22.6Xcode设备管理工具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.3iOS单测试框架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.1UI测试概述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.1UI素的层次结构树577
24.4.2UI测试中相关API579
24.5表示逻辑组件测试实践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.5autorelease的使用问题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.3XIB文件的延迟加载605
25.4数据持久化的优化607
25.4.1使用文件607
25.4.2使用SQLite数据库611
25.4.3使用Core Data612
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还是GCD619
25.6.4GCD技术619
25.7小结620
第五部分 实 战 篇
第26章 管理好你的程序代码——代码版本控制622
26.1概述622
26.1.1版本控制历史622
26.1.2基本概念623
26.2Git代码版本控制623
26.2.1服务器搭建623
26.2.2Gitolite服务器管理625
26.2.3Git常用命令627
26.2.4Git分支628
26.2.5Git协同开发632
26.2.6Xcode中Git的配置与使用634
26.3GitHub代码托管服务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安装CocoaPods654
27.1.2搜索库655
27.1.3项目与第三方库搭配形式656
27.1.4实例:静态链接库形式管理依赖657
27.1.5实例:框架形式管理依赖659
27.2使用Carthage工具管理依赖660
27.2.1安装Carthage660
27.2.2项目与第三方库搭配形式661
27.2.3Cartfile文件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 ID675
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:发布到GitHub696
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:数据库帮助类DBHelper704
29.3.8迭代2.8:发布到GitHub706
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:发布到GitHub720
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:发布到GitHub722
29.5.5迭代4.5:在App Store上发布应用722
29.6小结722
......
-
最近销售:已售出56 掌柜:兴阅图书专营店¥85 元
-
最近销售:已售出45 掌柜:兴阅图书专营店¥103 元
-
最近销售:已售出21 掌柜:兴阅图书专营店¥70 元
-
最近销售:已售出12 掌柜:兴阅图书专营店¥99 元
-
最近销售:已售出12 掌柜:兴阅图书专营店¥70 元