网站颜色:

正版 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

......

热门设计服务