iOS移动开发从入门到精通 李发展、王亮 9787302462026 清华大学出版社pdf下载

iOS移动开发从入门到精通 李发展、王亮 9787302462026 清华大学出版社百度网盘pdf下载

作者:
简介:iOS移动开发从入门到精通 李发展、王亮 9787302462026 清华大学出版社
出版社:
出版时间:2017-03
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

基本信息

书名:iOS移动开发从入门到精通

定价:99.00元

作者:李发展、王亮

出版社:清华大学出版社

出版日期:2017-03-01

ISBN:9787302462026

字数:

页码:

版次:1

装帧:平装-胶订

开本:128开

商品重量:0.4kg

编辑推荐


本书采用丰富的实例,直观的代码展示,向读者形象地展现了在创建一款*的iOS应用程序时,所需要的大部分知识和技巧。通过对本书的学习,读者可以建立起iOS 10技*的思想框架,并且对iOS 10开发的过程有一个全面的了解,高效地开发出自己的iOS应用程序。

内容提要


本书由iOS开发工程师精心编撰,系统地介绍了使用iOS 10 Swift 3 Xcode 8开发移动应用的关键技*。本书共分三篇,篇为基础篇,主要介绍了iOS开发基础知识,包括iOS系统的历史、Swift 3.0语言、UI界面构建技*、视图控制器、常用的控件、表和集合视图、视图和层、声音、视频、动画等。二篇为进阶篇,主要介绍了Alamofire网络服务、数据的持久化、多线程、CoreText、CoreI*ge、Storyboard、自动化测试、性能分析、本地化、加密与安全等实用技*。三篇为实例篇,通过对实体层、表现层和逻辑层三层相关技*的讲解,向读者详细展示了MVC设计模式在项目开发中的应用方式,并终创建一个成熟的商业项目。本书采用丰富的实例,直观的代码展示,向读者形象地讲解了在创建一款*的iOS应用程序时,所需要的大部分技巧,帮助读者轻松掌握并高效开发iOS程序。本书适合iOS开发新手、iOS程序员、iPhone开发人员、iPad开发人员使用,也可以作为相关培训机构和大专院校相关专业的教学用书。

目录


目 录

*章 开发准备 1

1.1iOS移动开发现状 2

1.1.1iOS的历史 2

1.1.2iOS 10的十大变化 4

1.1.3iOS应用开发的八个特点 5

1.2iOS 10的新功能 5

1.2.1SiriKit 6

1.2.2Proa*ive Suggestions

(预建议) 6

1.2.3Integr*ing with the Messages

App 7

1.2.4User Notific*ions 7

1.2.5Speech Recognition 8

1.2.6Wide Color 9

1.2.7Adapting to the True Tone

Display 9

1.2.8Widget Enhancements 9

1.2.9Security and Privacy

Enhancements 9

1.3 成为一名iOS开发者 11

1.3.1硬件上的需求 11

1.3.2加入Apple开发者计划 11

1.3.3下载安装Xcode和模拟器 13

1.3.4创建开发和发布配置文件Provisioning Profile 14

1.4 创建一个基本的iOS项目 17

1.4.1项目的创建 17

1.4.2设置项目的信息 19

1.4.3设置应用的Icon图标 19

1.4.4设置应用的Launch图* 20

1.4.5编译并运行项目 22

1.5iOS应用的生命周期 23

1.5.1iOS应用程序的状态 24

1.5.2演示iOS应用程序的各种

状态 25

1.6 小结 26

2章 Xcode 8 IDE和iOS模拟器 27

2.1Xcode 8的使用 28

2.1.1工具栏的使用 28

2.1.2导航器的功能介绍 29

2.1.3项目导航器中的内容 30

2.1.4创建一个组和Swift文件 30

2.1.5在项目中搜索文件 33

2.1.6代码的查找和替换 36

2.1.7代码的Debug调试 36

2.2iOS模拟器的使用 39

2.2.1使用多种iOS模拟器 39

2.2.2iOS模拟器方向的切换 40

2.2.3iOS模拟器语言的切换 40

2.2.4截取模拟器屏幕 41

2.2.5应用程序的退出和删除 41

2.3 小结 42

3章 Swift 3.0的基础知识 43

3.1Swift的基本概念 44

3.1.1Swift语言的特点 44

3.1.2Swift常量和变量的定义 45

3.1.3常量和变量的输出 46

3.1.4注释 47

3.1.5Playground 47

3.2 数据类型与运算 49

3.2.1布尔类型 49

3.2.2Int类型及实例属性 50

3.2.3浮点类型及实例属性 51

3.2.4字符和字符串 51

3.2.5元组类型 54

3.2.6一元、二元和三元运算符 55

3.2.7比较运算符 56

3.3 循环语句和条件判断语句57

3.3.1for循环 57

3.3.2while循环语句 58

3.3.3repe*-while循环语句 59

3.3.4if条件判断语句 60

3.3.5switch条件判断语句 60

3.3.6continue语句和forthrough

语句 61

3.4 数组和字典 62

3.4.1数组 62

3.4.2多维数组 64

3.4.3数组的遍历 65

3.4.4字典 66

3.5 小结 68

4章 Swift 3.0的进阶内容 69

4.1 函数 70

4.1.1函数的定义和调用 70

4.1.2为参数设置默认值 71

4.1.3设置可变的函数参数数量 71

4.1.4函数作为参数和返回类型 72

4.1.5元组作为函数的返回类型,

实现多个返回值 74

4.1.6使用函数类型 74

4.1.7函数的输入输出参数 75

4.1.8函数的嵌套 76

4.1.9函数的递归用法 76

4.1.10常用的内置函数 77

4.2 枚举和结构体 79

4.2.1枚举 79

4.2.2结构体 83

4.3 类 85

4.3.1类的创建 85

4.3.2类属性的set和get方法 88

4.3.3类属性的willSet和didSet

方法 89

4.3.4类的静态方法 90

4.3.5类的析构 91

4.3.6类的继承 92

4.3.7类的延迟加载属性l*y 93

4.3.8类的引用特征 95

4.3.9类型检查 95

4.3.10Any和Anyob*e* 98

4.4 扩展、协议和其他 99

4.4.1扩展 99

4.4.2协议 101

4.4.3问号和感叹号! 103

4.5 小结 105

5章 视图UIView和层CALayer 106

5.1 视图UIView 107

5.1.1UIView概述 107

5.1.2UIView的外观属性 109

5.1.3UIView的几何属性 112

5.1.4UIView的嵌套和层次关系 114

5.1.5UIView的交互属性 116

5.1.6UIView的变形作 118

5.1.7自定义UIView视图 120

5.2CALayer层 124

5.2.1CALayer边框 124

5.2.2CALayer阴影 125

5.2.3CALayer圆角 126

5.2.4CALayer渐变 127

5.3 小结 129

6章 视图控制器UIViewController130

6.1UIViewController视图控制器概述 131

6.1.1视图控制器与MVC 131

6.1.2创建一个视图控制器 132

6.1.3以模态方式弹出视图控制器 136

6.1.4视图控制器的生命周期 139

6.1.5视图控制器和UIScrollView 141

6.2UITabBarController 145

6.2.1创建一个UITabBarController 145

6.2.2改变Tab bar的位置 147

6.2.3改变UITabBarController

索引 149

6.2.4在Tab图标上显示角标 149

6.3UINavig*ionController 150

6.3.1创建一个UINavig*ionController

151

6.3.2UINavig*ionController视图

入栈和出栈 153

6.3.3导航栏和工具栏的显示和

隐藏 157

6.3.4导航栏样式的修改 157

6.4 导航控制器和标签控制器158

6.5 小结 161

7章 常用经典控件 162

7.1 控件概述 163

7.1.1何为Target-A*ion机制 163

7.1.2UIControl类的方法和属性 165

7.1.3让我们一起动手来实现一个UIControl吧 167

7.2UIButton的概述 168

7.3UILabel文本视图 171

7.3.1UILabel的创建和文案显示 172

7.3.2UILabel处理过长的文案 173

7.3.3UILabel的阴影 174

7.4UISwitch开关视图 175

7.4.1UISwitch的创建 175

7.4.2UISwitch的开关使用 176

7.5UIRefreshControl 刷新控件 176

7.6UITextField文本框控件 178

7.6.1UITextField的创建和基本

应用 179

7.6.2UITextField的背景图 180

7.6.3UITextField的浮动视图(Overlay view) 181

7.6.4UITextField的代理UITextFieldDeleg*e 183

7.7 小结 185

8章 UITableView和UIColle*ionView

186

8.1UITableView概述 187

8.1.1UITableViewCell单元格 187

8.1.2创建一个简单的表格 189

8.1.3自定义单元格UITableViewCell

193

8.1.4自定义单元格的高度 196

8.1.5给表格添加章节和索引 198

8.1.6单元格的选择与取消选择 201

8.1.7单元格的*入和删除 204

8.1.8 移动单元格的位置 209

8.1.9表格之间的嵌套 213

8.2UIColle*ionView概述 219

8.2.1UIColle*ionView的实现

原理 220

8.2.2创建一个 UIColle*ionView对象并添加点击事件 221

8.3 小结 225

9章 触屏事件和触摸手势 226

9.1 触摸事件的监测 227

9.1.1对触摸事件阶段的监测 227

9.1.2监测是否触摸到某个视图 229

9.1.3实现图像视图的拖动 231

9.2 触摸手势的使用 232

9.2.1实现单点触摸手势 233

9.2.2实现双击触摸手势 235

9.2.3实现长按手势的监测 236

9.2.4捏合手势的监测 238

9.33D Touch的使用 239

9.4 小结 242

*0章 动画、声音与视频 243

10.1制作动画 244

10.1.1UIView的动画 244

10.1.2使用UII*geView播放帧

动画 249

10.1.3位移关键帧动画的制作 251

10.2音频的播放 254

10.2.1使用System Sound Services

播放简短声音 255

10.2.2使用AVAudioPlayer播放

音乐 256

10.3视频的播放 260

10.3.1使用AVPlayer播放影* 260

10.3.2实现影*的画中画功能 262

10.4小结 265

*1章 Alamofire网络请求框架 266

11.1Alamofire的前世今生 267

11.1.1Alamofire的手动集成 267

11.1.2Alamofire的网络是否联通和

连接方式 269

11.1.3Alamofire的GET和POST

请求 272

11.1.4Alamofire的文件上传及

进度显示 274

11.1.5Alamofire的文件下载及

进度显示 278

11.2小结 279

*2章 UIWebView与HTML 5技* 280

12.1UIWebView的使用 281

12.1.1使用UIWebView加载网页 281

12.1.2使用UIWebView加载HTML

字符串和GIF动画 283

12.1.3使用UIWebView加载本地

网页 286

12.1.4使用回调原生

程序 289

12.2创建一个简单的笔记本 292

12.2.1创建一个可编辑的div 292

12.2.2设置网页的CSS样式 293

12.2.3添加*入笔记图*的方法 294

12.2.4添加删除图*和获得笔记的

方法 295

12.2.5实现笔记本的用户界面 296

12.3小结 298

*3章 数据的持久化 299

13.1解析plist文件 300

13.1.1创建和解析plist文件 300

13.1.2将信息写入plist文件 303

13.2使用CoreD*a进行数据的持久化 304

13.2.1创建Core D*a实体并*入

数据 306

13.2.2检索Core D*a中的数据 308

13.2.3修改和删除Core D*a数据 310

13.3小结 312

*4章 多线程技* 313

14.1多线程的概念 314

14.1.1任务、进程和线程 314

14.1.2线程的Stack space 315

14.1.3线程的优先级 315

14.1.4线程的生命周期 315

14.1.5线程和Run loop 316

14.2使用Thread 316

14.2.1创建Thread下载图* 317

14.2.2给Thread加锁使线程同步 319

14.3Oper*ion技*的使用 322

14.4Grand Central Disp*ch的使用 325

14.4.1使用GCD查询IP地址

信息 326

14.4.2Disp*chGroup调度组的

使用 328

14.5小结 329

*5章 MapKit地图 330

15.1Map Kit的概念 331

15.1.1MKMapView的显示区域 331

15.1.2MKMapView的跟踪和

定位 332

15.1.3MKMapView的交互选项和

装饰物 333

15.1.4创建一个MKMapView

地图 333

15.1.5MKMapView代理的使用 335

15.1.6自定义annot*ionView和

calloutView 337

15.1.7Camera相机的使用 341

15.2小结 342

*6章 iOS的图文混排技* 343

16.1Core Text的使用 344

16.1.1文字排版方面的一些基本

概念 344

16.1.2列出设备中的所有字体 346

16.1.3富文本的创建 347

16.1.4图文混排的实现 350

16.2Text Kit的使用 354

16.2.1使用Text Kit对文字进行

分栏 354

16.2.2使用Text Kit制作图文混排

效果 357

16.3小结 359

*7章 iOS的图像和视频处理技*360

17.1Core I*ge概述 361

17.1.1使用Core I*ge的三个类

制作单*调效果 362

17.1.2使用Core I*ge给图*添加

马赛克 363

17.1.3使用Core I*ge处理视频

画面 364

17.1.4输出Core I*ge的所有

滤镜 369

17.1.5使用CIDete*or和CIFe*ure

进行人脸检测 370

17.2UIBlurEffe*和CGBlendMode 372

17.2.1使用UIBlurEffe*实现*玻璃

效果 372

17.2.2使用CGBlendMode实现颜*

混合效果 373

17.3小结 376

*8章 iOS常用设备的使用 377

18.1Photos和Camera的使用 378

18.1.1读取Photos中的图* 378

18.1.2调用相机拍摄照* 382

18.2定位设备的使用 384

18.2.1使用定位设备获取设备地理

位置 385

18.2.2将地理坐标转换为实际

地名 388

18.3陀螺仪和加速计设备的使用 390

18.3.1陀螺仪的原理和应用 390

18.3.2加速计的原理和应用 390

18.3.3检测iOS设备的晃动 391

18.4小结 393

*9章 Storyboard故事板的使用 394

19.1Storyboard概述 395

19.1.1Storyboard的优缺点 395

19.1.2故事板的组织形式 396

19.1.3创建一个Storyboard 397

19.1.4更改故事板的初始视图

控制器 398

19.2在Storyboard中使用标准控件 400

19.2.1添加三个控件 400

19.2.2对控件进行连接 402

19.3在Storyboard中使用表格控件 405

19.3.1在故事板中添加Table View 405

19.3.2添加Table View Cell 405

19.3.3设置Table View的数据源 407

19.3.4修改ViewController.swift

文件 408

19.4在Storyboard中使用集合控件 409

19.4.1添加Colle*ion View 409

19.4.2设置Colle*ion View Cell 409

19.4.3设置Colle*ion View的数据源

和代理 411

19.4.4修改ViewController.swift

文件 412

19.5Storyboard常见的层次结构 413

19.6Storyboard之间的页面跳转和参数

传递 417

19.6.1单个Storyboard中页面间的

参数传递 417

19.6.2多个Storyboard中的页面跳转

及参数传递 420

19.7使用约束功能适配多分辨率 424

19.7.1打开并运行示例项目 424

19.7.2给父视图MainView添加

约束 426

19.7.3给三个分隔线添加约束 428

19.7.4给两个小箭头添加约束 429

19.7.5给添加新会员按钮添加

约束 431

19.7.6给无数据图标添加约束 432

19.8小结 433

20章 界面测试和自动化测试434

20.1单元测试概述 435

20.1.1Xocde的XCTest框架 435

20.1.2对其他类的方法进行单元

测试 438

20.1.3使用XCTest框架进行性能

测试 441

20.2UI Testing界面测试 442

20.2.1往项目中*入UI Testing 443

20.2.2制作UI测试的程序 444

20.2.3录制UI Testing步骤 446

20.2.4播放UI Testing的录制

步骤 446

20.3使用UIAuto*tion进行自动化

测试 447

20.3.1使用UIAuto*tion录制

自动化测试代码 447

20.3.2测试脚本的保存和加载 449

20.4小结 449

21章 iOS应用程序内存泄*的检测451

21.1Alloc*ions工具的使用 452

21.2Leaks工具的使用 458

21.3小结 461

22章 iOS应用程序的本地化 462

22.1应用程序的本地化 463

22.1.1应用程序名称的本地化 463

22.1.2应用程序文字内容的本

地化 468

22.1.3Storyboard的本地化 471

22.1.4图*素材的本地化 474

22.2小结 477

23章 加密与安全 478

23.1加密与安全 479

23.1.1对称加密和非对称加密 479

23.1.23DES加密 480

23.1.3SHA1加密 485

23.1.4MD5加密 487

23.1.5越狱情况的判断 490

23.2小结 492

24章 开源框架CocoaPods493

24.1CocoaPods、SPM和Carthage简介 494

24.1.1为什么使用CocoaPods 494

24.1.2CocoaPods的安装及的

镜像使用 495

24.1.3Podspec的镜像使用 496

24.1.4CocoaPods的实践 497

24.1.5pod install 和 pod upd*e 的

使用 497

24.1.6CocoaPods 的卸载 498

24.2CocoaPods-app的使用 498

24.2.1为新项目加入CocoaPods 499

24.2.2对Podfile的pod install和pod upd*e 500

24.2.3删除工程中的CocoaPods 501

24.2.4安装命令行 502

24.3小结 502

25章 Git版本控制及GitHub社会化

编程实践 503

25.1Git前奏曲 504

25.1.1什么是版本控制 504

25.1.2版本控制简史 504

25.1.3Git原理 506

25.1.4Git的安装、配置、别名和

帮助 508

25.2Git基础曲 510

25.2.1创建本地仓库和关联远程

仓库 510

25.2.2文件在工作区、暂存区和

Git本地仓库中的作 513

25.2.3查看提交历史 515

25.2.4撤销作 515

25.2.5标签 516

25.3小结 519

26章 项目案例的架构搭建 520

26.1多人协作的工作流程 521

26.2技*选型 522

26.3MVC及工程结构 523

26.4UITabbarController、UINavig*ionController和Assets.xcassets的搭建 525

26.4.1UITabbarController和UINavig*ionController 525

26.4.2Assets.xcassets管理 527

26.5小结 529

27章 Model层相关框架 530

27.1XML、Plist、JSON数据格式 531

27.2开启ATS 532

27.3AlamofireOb*e*Mapper 533

27.3.1AlamofireOb*e*Mapper的

安装 533

27.3.2AlamofireOb*e*Mapper的

使用 533

27.4Ob*e*Mapper 535

27.4.1Ob*e*Mapper的安装 535

27.4.2Ob*e*Mapper中Model与

JSON的转换 536

27.5Moya 536

27.5.1Moya的安装 537

27.5.2Moya的使用 537

27.6小结 540

28章 与众平台联姻 541

28.1ShareSDK 联合登录 542

28.1.1获取AppKey 542

28.1.2下载SDK 542

28.1.3快速集成 542

28.1.4新建Header File并建立

桥接 543

28.1.5打开桥接文件(Bridging-Header.h) 544

28.1.6添加URL Types 546

28.1.7查看open.*.*应用的

审核进度 546

28.2ShareSDK分享 548

28.2.1增加*平台分享支持 548

28.2.2增加微信平台分享支持 548

28.2.3*和微信平台分享的代码

实现 549

28.3聚合数据和LeanCloud 550

28.3.1聚合数据 550

28.3.2LeanCloud 551

28.4TalkingD*a统计 551

28.5小结 554

29章 开发SwiftNews新闻客户端

App 555

29.1SwiftNews App概述 556

29.1.1修改App Name 556

29.1.2修改App ICON 557

29.1.3欢迎页面 558

29.1.4启动页面 559

29.1.5Debug模式下的print 561

29.1.6桥联SVProgressHUD 562

29.1.7自定义Cell 563

29.1.8*和国际新闻模块 564

29.1.9图*加圆角和助手类 567

29.2小结 569

30章 应用程序的打包和发布570

30.1iOS应用商店概述 571

30.1.1App Store的重大更新 571

30.1.2在iTunes Conne*创建一个

App 573

30.1.3打包App为IPA文件 576

30.1.4自动化打包App 577

30.1.5上传App至App Store 580

30.1.6配置构建版本并提交审核 580

30.2小结 582

作者介绍


文摘


序言