iOS编程(第5版)

iOS编程(第5版) pdf epub mobi txt 电子书 下载 2025

Christian Keur,Aaron Hillegass 著,Christian Keur,Aaron Hillegass 编,王凤全,丁道骏 译
图书标签:
  • iOS
  • Swift
  • Objective-C
  • 编程
  • 开发
  • 移动开发
  • 苹果
  • Xcode
  • 教程
  • 技术
想要找书就要到 新城书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 华中科技大学出版社
ISBN:9787568029322
版次:5
商品编码:12228628
包装:平装
开本:16开
出版时间:2017-08-01
用纸:胶版纸
页数:416
字数:694000
正文语种:中文

具体描述

产品特色

编辑推荐

本书有两个特点:涵盖iOS应用开发必备知识:从Swift基础知识到新语言特性,从AppKit库到常见的Cocoa设计模式,从Xcode技巧到Instruments,不一而足。第二、指导读者以正确的方法解决问题:Swift的习惯约定有哪些(例如命名约定,内存管理约定),创建子类时如何处理初始化方法,Cocoa的常见设计模式有哪些,如何选择数据保存方法等。

内容简介

《iOS编程》荣获Jolt生产力大奖。第5版更新了iOS9、Xcode7、Swift的内容。全书涵盖了开发iOS应用的方方面面。从Swift基础知识到新增加的语言特性;从AppKit库到常见的Cocoa设计模式;从Xcode技巧到Instrumen tst等。如果读者刚接触iOS编程,阅读本书前两章可以快速入门。如果读者已经有iOS编程经验,阅读本书可以拾遗补缺。

作者简介

Christian Keur是Big Nerd Ranch的高级讲师和软件工程师,负责编写Big Nerd Ranch的“iOS新手培训课程”教材。该教材广受好评,是本书的原型。Christian毕业于美国佐治亚理工学院计算机科学系,目前居住在亚特兰大。


Aaron Hillegass是Big Nerd Ranch的创始人之一,曾就职于NeXT公司和Apple公司,他拥有近20年的Cocoa、iOS开发与教学经验。Aaron与他人合著了《Mac OS X编程》。


精彩书评

阅读此书,转身成为iPhone/iPad程序员。

-Dietrich Kappe,Pathfinder Development公司CTO


目录

第1章 第一个简单的iOS应用 1

1.1 创建Xcode项目 2

1.2 模型-视图-控制器 5

1.3 设计Quiz 6

1.4 Interface Builder 7

1.5 创建界面 8

1.6 创建模型对象 21

1.7 编译完成的应用 23

1.8 应用图标 24

1.9 启动画面 26

第2章 Swift语言 27

2.1 Swift的数据类型 27

2.2 使用标准类型 28

2.3 可选 35

2.4 循环和字符串补全 37

2.5 枚举和Switch 39

2.6 查阅Apple的Swift文档 40

第3章 视图与视图层次结构 41

3.1 视图基础 42

3.2 视图层次结构 42

3.3 创建新项目 44

3.4 视图及Frame 45

3.5 自动布局系统 55

3.6 初级练习:更多自动布局练习 64

第4章 文本输入与委托 65

4.1 文本编辑 65

4.2 实现温度转换 73

4.3 委托 76

4.3 初级练习:禁止输入字母 79

第5章 视图控制器 81

5.1 视图控制器的视图 82

5.2 设置初始视图控制器 82

5.3 UITabBarController 85

5.4 加载以及展示视图 90

5.5 与视图控制器及其视图交互 92

5.6 中级练习:夜间模式 93

5.7 深入学习:高清显示 93

第6章 用代码实现视图 95

6.1 使用代码创建视图 96

6.2 代码实现约束 97

6.3 代码实现事件 104

6.4 初级练习:再添加一个Tab 106

6.5 中级练习:显示用户位置 106

6.6 高级练习:显示地图大头针 106

6.7 深入学习:NSAutoresizingMaskLayoutConstraint 106

第7章 本地化 109

7.1 国际化 110

7.2 本地化 120

7.3 初级练习:另外一种本地化 126

7.4 深入学习:NSBundle在国际化中扮演的角色 126

7.5 深入学习:导入以及导出XLIFF 128

第8章 控制动画 129

8.1 基础动画 130

8.2 另一个标签 132

8.3 动画完成 135

8.4 对约束作动画 135

8.5 时间方法 139

8.6 初级练习:spring动画 141

8.7 中级练习:Layout Guides 141

第9章 UITableView与UITableViewController 143

9.1 编写Homepwner应用 144

9.2 UITableViewController 145

9.3 创建Item类 147

9.4 UITableView数据源 149

9.5 UITableViewCells 153

9.6 内容缩进 158

9.7 初级练习:多个分组 159

9.8 中级练习:固定的行 160

9.9 高级练习:自定义UITableView 160

第10章 编辑UITableView 161

10.1 编辑模式 161

10.2 添加行 166

10.3 删除行 168

10.4 移动行 169

10.5 显示提示窗口 170

10.6 设计模式 173

10.7 初级练习:修改删除按钮的标题 174

10.8 中级练习:禁止调整顺序 174

10.9 高级练习:真正地禁止调整顺序 174

第11章 创建UITableViewCell子类 175

11.1 创建ItemCell 176

11.2 添加并关联ItemCell的属性 178

11.3 使用ItemCell 179

11.4 动态计算高度 180

11.5 动态类型 181

11.6 初级练习:UITableViewCell的颜色 184

第12章 UIStackView 185

12.1 使用UIStackView 186

12.2 Segues 194

12.3 绑定内容 195

12.4 传递数据 200

12.5 初级练习:更多的UIStackView 201

第13章 UINavigationController 203

13.1 UINavigationController 204

13.2 使用UINavigationController导航 209

13.3 视图的出现和消失 210

13.4 隐藏键盘 211

13.5 UINavigationBar 215

13.6 初级练习:显示数字键盘 220

13.7 中级练习:自定义UITextField 220

13.8 高级练习:添加更多UIViewController 220

第14章 相机 221

14.1 通过UIImageView对象显示图片 222

14.2 通过UIImagePickerController拍摄照片 226

14.3 创建ImageStore 231

14.4 让UIViewController可以访问ImageStore 232

14.5 创建并使用键 233

14.6 使用ImageStore 235

14.7 初级练习:编辑图片 236

14.8 中级练习:删除图片 237

14.9 高级练习:Camera Overlay 237

14.10 深入学习:导航实现文件 237

第15章 保存、读取与应用状态 241

15.1 固化 242

15.2 应用沙盒 245

15.3 NSKeyedArchiver与NSKeyedUnarchiver 248

15.4 应用状态与状态切换 251

15.5 通过NSData将数据写入文件 254

15.6 错误处理 257

15.7 初级练习:PNG 259

15.8 深入学习:应用状态切换 259

15.9 深入学习:文件系统读/写 261

15.10 深入学习:应用程序包 263

第16章 Size Classes 265

16.1 定制Size Classes 266

16.2 初级练习:垂直排列UITextField和UILabel 272

第17章 触摸事件和UIResponder 273

17.1 触摸事件 274

17.2 创建TouchTracker应用 275

17.3 创建Line结构体 276

17.4 创建DrawView 278

17.5 使用DrawView画图 279

17.6 处理触摸事件并创建线条对象 280

17.7 @IBInspectable 285

17.8 中级练习:颜色 287

17.9 高级练习:圆圈 287

17.10 深入学习:响应对象链 287

17.11 深入学习:UIControl 289

第18章 UIGestureRecognizer与UIMenuController 291

18.1 UIGestureRecognizer子类 292

18.2 使用UITapGestureRecognizer检测点击 292

18.3 多个UIGestureRecognizer 294

18.4 UIMenuController 297

18.5 更多UIGestureRecognizer 299

18.6 深入学习UIGestureRecognizer 304

18.7 中级练习:神奇的线条 305

18.8 高级练习:速度和大小 305

18.9 铂金挑战:颜色 305

18.10 深入学习:UIMenuController与UIResponderStandardEditActions 306

第19章 网络服务 307

19.1 开始Photorama应用 308

19.2 创建URL 309

19.3 发送请求 314

19.4 Photo模型 317

19.5 JSON数据 318

19.6 下载并显示图片数据 326

19.7 主线程 329

19.8 初级练习:打印返回信息 331

19.9 深入学习:HTTP 331

第20章 UICollectionView 333

20.1 显示网格 334

20.2 UICollection数据源 336

20.3 自定义布局 339

20.4 创建自定义的UICollectionViewCell 341

20.5 下载图片数据 345

20.6 查看照片 349

20.7 中级练习:改变Item的尺寸 352

20.8 高级练习:自定义布局 352

第21章 Core Data 353

21.1 对象图 353

21.2 实体 354

21.3 创建Core Data Stack 358

21.4 更新数据 361

21.5 更新数据源 364

21.6 在硬盘上保存图片 367

21.7 初级练习:照片查看次数 368

第22章 Core Data关系 369

22.1 关系 370

22.2 在界面中添加标签 372

22.3 父子NSManagedObjectContext 382

22.4 中级练习:收藏 384

第23章 后记 385

23.1 接下来做什么 385

23.2 关注我们 386

索引 387


精彩书摘

本书中所有代码都是使用Swift语言编写的,前面的章节会让读者快速熟悉这门新语言。通过本书,读者会学到如何利用Swift语言特性来编写更好的iOS应用。我们已经爱上Swift了,相信你也会的。

其他新增的部分包括collection view、size class、Auto Layout、web service、Core Data。

第5版使用的是Xcode 7.1或更新的版本,应用在安装iOS 9或更新版本的设备上运行。

除了以上这些明显的变化,作者还根据读者和学生提出的问题对本书进行了大量修订。可以说与前一版本相比,新版页页有改进。


前言/序言

要成为一名优秀的iOS程序员,需要攻克以下三道难题。

必须学会Swift语言。Swift是iOS推荐的开发语言。本书前两章会讲解必要的Swift语言知识。

必须掌握一些主要概念。其中包括委托(delegation)机制、固化(archiving)机制,以及如何正确使用视图控制器(view controller)。理解这些技术需要花些时间。当读者把本书读到一半时,就会明白这些概念。

必须掌握框架(framework)。读者的最终目标是了解iOS的所有框架,学会如何使用框架中的每一个类和方法。但这几乎是不可能完成的任务:iOS有几百个类和上千个方法,而且随着iOS的版本升级,Apple还会不断地加入新的类和新的方法。本书将会介绍iOS SDK中的各个组成部分,但是不会太过深入。作者的目标是带领读者入门,使读者能够自行阅读并理解Apple的参考文档。

Big Nerd Ranch公司采用本书作为“iOS新手培训课程”的教材。这些内容经过了长期的检验,并且帮助很多人成为iOS程序员。真心希望本书也能给你带来帮助。



《SwiftUI实战:构建现代iOS应用》 内容梗概 本书深入探讨了SwiftUI框架,这是苹果公司推出的声明式UI工具包,旨在简化iOS、macOS、watchOS和tvOS应用程序的开发。本书旨在带领读者从零开始,逐步掌握SwiftUI的核心概念、组件、布局系统、状态管理、数据流以及高级特性,最终能够独立设计和开发功能齐全、用户体验卓越的现代苹果平台应用程序。 第一部分:SwiftUI基础与核心概念 第一章:SwiftUI概览与开发环境搭建 介绍SwiftUI的缘起、核心设计理念(声明式UI、跨平台)、以及与UIKit/AppKit的对比。 详细指导读者如何安装Xcode(最新版本),配置iOS模拟器,并创建一个新的SwiftUI项目。 讲解SwiftUI项目的基本结构,包括`App`协议、`Scene`、`WindowGroup`以及第一个视图`ContentView`的构成。 初次体验Xcode的Canvas实时预览功能,理解其在UI开发中的重要性。 第二章:视图(Views)与控件(Controls) 深入讲解SwiftUI中视图的基本构建块:`View`协议,以及如何创建自定义视图。 详细介绍各种常用的基本视图元素:`Text`(文本显示)、`Image`(图像显示)、`Button`(按钮)、`TextField`(文本输入框)、`SecureField`(密码输入框)、`Toggle`(开关)、`Slider`(滑块)、`Stepper`(步进器)等。 讲解如何对这些视图进行修饰(Modifiers),如`font()`、`foregroundColor()`、`padding()`、`frame()`、`background()`、`cornerRadius()`、`shadow()`等,以及修饰符的链式调用原理。 介绍`Spacer`(间隔符)和`Divider`(分割线)在布局中的作用。 第三章:布局系统(Layout System) 重点讲解SwiftUI强大的布局容器:`VStack`(垂直堆栈)、`HStack`(水平堆栈)、`ZStack`(层叠堆栈)。 深入理解`LazyVStack`、`LazyHStack`、`LazyVGrid`、`LazyHGrid`在处理列表和网格数据时的性能优势。 讲解`Form`和`List`在创建表单和列表视图时的具体用法和定制选项。 介绍`ScrollView`(滚动视图)及其在创建可滚动内容时的应用。 学习使用`GeometryReader`获取视图的尺寸和位置信息,实现更灵活的布局。 讲解`alignment`(对齐)和`spacing`(间距)参数在布局容器中的控制。 第四章:状态管理(State Management) 理解SwiftUI的核心概念:状态(State)驱动UI。 详细讲解`@State`属性包装器,用于管理视图的局部状态,并理解其生命周期。 介绍`@Binding`属性包装器,用于实现父视图和子视图之间双向数据绑定,特别是在自定义控件和表单元素中。 讲解`@ObservedObject`和`ObservableObject`协议,用于管理更复杂的、跨多个视图共享的可观察对象。 介绍`@StateObject`,它与`@ObservedObject`的区别,尤其是在对象生命周期管理上的优化。 学习`@EnvironmentObject`,用于在视图层级中方便地传递和访问共享数据。 讲解`@Environment`属性包装器,用于访问系统环境值,如颜色方案、区域设置等。 第五章:导航(Navigation) 掌握`NavigationView`(在iOS 16+中推荐使用`NavigationStack`)的用法,实现视图之间的层级导航。 学习使用`NavigationLink`来触发导航行为,并传递数据。 讲解如何在导航栏(Navigation Bar)中添加按钮、标题和自定义视图。 理解`@State`变量与`NavigationLink`的结合使用,实现条件导航。 介绍模态视图(Modal Views),包括`sheet`和`fullScreenCover`的使用,以及如何传递和返回数据。 讲解`NavigationPath`(适用于`NavigationStack`)在更复杂的导航场景下的应用。 第二部分:SwiftUI进阶与高级应用 第六章:数据模型与数据持久化 设计和创建符合SwiftUI数据流原则的数据模型。 学习使用`Codable`协议进行数据编码和解码。 介绍`UserDefaults`用于存储简单的键值对数据。 深入讲解`Core Data`在SwiftUI中的集成,包括设置Core Data堆栈、创建实体、执行查询和保存数据。 学习使用`FetchRequest`和`@FetchRequest`属性包装器简化Core Data数据获取。 简要介绍`SwiftData`(iOS 17+),一种更现代、更SwiftUI化的数据持久化方案。 探讨第三方数据持久化库,如Realm,及其在SwiftUI项目中的应用。 第七章:网络请求与API集成 使用`URLSession`进行HTTP网络请求,包括GET、POST等方法。 学习如何处理网络响应,解析JSON数据。 理解异步编程模型,使用`async/await`简化网络请求的代码。 讲解在SwiftUI视图中展示网络加载状态,并处理加载错误。 集成第三方API,如天气API、新闻API等,构建动态数据应用。 介绍网络请求的缓存策略和错误处理机制。 第八章:动画(Animation)与过渡(Transitions) 为SwiftUI视图添加平滑的动画效果,使用`animation()`修饰符。 理解隐式动画(Implicit Animation)与显式动画(Explicit Animation)的区别。 学习使用`withAnimation`块来控制动画的触发和属性。 讲解各种动画曲线(Timing Curves),如`linear`、`easeIn`、`easeOut`、`easeInOut`等。 实现视图的插入和移除过渡效果,使用`transition()`修饰符。 创建自定义的动画和过渡效果,增强用户体验。 使用`matchedGeometryEffect`实现元素之间共享的动画。 第九章:手势识别(Gesture Recognition) 学习如何识别各种用户手势,如`TapGesture`(点击)、`DragGesture`(拖拽)、`MagnificationGesture`(缩放)、`RotationGesture`(旋转)。 将手势与视图绑定,实现交互功能。 讲解如何组合使用多个手势。 利用拖拽手势实现视图的拖动和放置。 通过缩放和旋转手势实现图像的变换。 处理手势的取消和结束状态。 第十章:列表与集合视图的高级用法 深入定制`List`和`ForEach`的行为,包括可编辑性、删除、插入等。 学习在列表中实现嵌套滚动视图。 构建复杂的网格布局,使用`LazyVGrid`和`LazyHGrid`。 为列表和网格视图添加下拉刷新功能。 实现无限滚动加载(Infinite Scrolling)效果。 介绍`Section`在`List`中的使用,用于组织内容。 第十一章:自定义视图与组件化开发 学习如何封装常用UI模式为可重用视图组件。 设计具有灵活配置选项的自定义视图。 使用`ViewBuilder`和`@ViewBuilder`属性包装器创建可组合的视图。 理解`PreferenceKey`和`@Namespace`在视图间通信和共享信息中的作用。 构建响应式组件,能够根据传入的数据动态调整自身。 模块化和组件化是构建大型、可维护应用程序的关键。 第十二章:macOS、watchOS和tvOS上的SwiftUI开发 介绍SwiftUI在其他苹果平台上的应用和适配。 讲解macOS应用的UI设计原则和常用控件。 为watchOS应用设计简洁高效的交互界面。 探讨tvOS应用的开发要点,包括遥控器导航。 理解如何使用`if os()`条件编译指令编写跨平台代码。 展示如何复用大部分SwiftUI代码,快速适配不同平台。 第十三章:测试与调试 编写单元测试来验证SwiftUI视图的逻辑。 使用`XCTest`框架进行UI测试,模拟用户交互。 学习使用Xcode的调试工具,如断点、视图调试器(View Debugger)、内存调试器(Memory Debugger)。 利用`print`语句和`os_log`进行日志记录。 理解如何诊断和修复SwiftUI中的常见性能问题。 探讨代码覆盖率的重要性。 第十四章:性能优化与最佳实践 识别和解决SwiftUI应用中的性能瓶颈。 优化视图的重绘机制,避免不必要的更新。 合理使用`@StateObject`和`@ObservedObject`,管理对象生命周期。 利用`Lazy`加载的容器提高列表和网格的性能。 优化网络请求和数据处理。 遵循SwiftUI的设计模式和编码规范,编写可读性强、易于维护的代码。 讨论如何构建可访问性(Accessibility)良好的应用程序。 附录 SwiftUI常用修饰符速查表 SwiftUI常用组件一览 SwiftUI与UIKit/AppKit交互示例 常用第三方库推荐 本书的编写风格力求清晰、易懂,配以大量的代码示例和实践练习,帮助读者将理论知识转化为实际开发能力。通过系统学习本书内容,读者将能够自信地运用SwiftUI框架,打造出符合现代用户期待的优质苹果平台应用程序。

用户评价

评分

读完《iOS编程(第5版)》,我最大的感受就是“充实”。这本书的内容覆盖了从入门到进阶的方方面面,几乎涵盖了我对 iOS 开发的所有期待。作者的讲解非常到位,逻辑清晰,条理分明。我特别喜欢它对新技术的介绍,比如 Swift UI,虽然我还没有深入研究,但书中的初步介绍让我对这个未来的 UI 框架有了初步的认识和了解。这本书的实践性也非常强,每一个章节都配有详实的示例代码,让我能够边学边练,巩固所学知识。我跟着书中的指引,成功地开发了一个可以拍照、保存图片并分享的应用,这个过程让我深刻体会到 iOS 开发的魅力。我还会继续反复研读这本书,相信它会是我未来 iOS 开发之路上的得力助手。

评分

我是一名正在学习中的计算机专业学生,对 iOS 开发有浓厚的兴趣,希望能为毕业设计打下坚实基础。《iOS编程(第5版)》为我提供了一个非常系统和全面的学习路径。它从 Swift 语言的基础语法讲起,循序渐进地引入 iOS 开发的核心概念,比如视图控制器生命周期、事件处理、数据绑定等。书中对 UIKit 框架的讲解非常细致,让我理解了如何构建复杂的用户界面,如何实现流畅的动画效果,以及如何处理各种用户交互。我特别欣赏书中关于网络请求和数据解析的部分,这对于开发需要与服务器交互的应用至关重要。此外,书中还提供了很多关于如何优化应用性能和提升用户体验的建议,这对于我来说是宝贵的财富。这本书不仅让我掌握了技术,更培养了我解决问题的能力和工程思维。

评分

这本《iOS编程(第5版)》真是让我眼前一亮!我一直对移动应用开发充满兴趣,但又觉得入门门槛有些高,尤其是 Swift 语言和 iOS 的生态系统。这本书简直是为我量身定做的。它从最基础的概念讲起,比如 Xcode 的使用、界面布局的各种方式(Auto Layout 真是越用越觉得强大),到如何处理用户交互、管理数据,再到更深入的网络通信、多线程等,都讲解得非常透彻。我尤其欣赏作者的循序渐进,不会一下子抛出太多复杂的知识点,而是让你一步步打牢基础。书中的代码示例也非常贴近实际项目,跟着敲一遍,真的能感觉到自己动手能力在飞速提升。而且,书中对一些常见问题的解答和最佳实践的建议,让我少走了很多弯路。读完之后,我感觉自己对 iOS 开发的整体框架有了清晰的认识,信心也大增,迫不及待想开始我的第一个 App 项目了!

评分

我是一位经验丰富的后端开发者,想尝试转型 into iOS 领域,所以对技术的深度和广度要求比较高。《iOS编程(第5版)》在这方面完全没有让我失望。它不仅仅是简单地介绍 API,而是深入剖析了 UIKit 的工作原理、MVC、MVVM 等设计模式的应用,以及如何构建可维护、可扩展的应用程序。书中对于内存管理、性能优化等高级话题也有详细的论述,这对于我这种习惯思考系统架构的人来说,非常受用。我特别喜欢其中关于 Combine 框架的讲解,响应式编程在 iOS 开发中的应用前景广阔,这本书能提供如此详尽的指南,实在是太难得了。同时,它也覆盖了 Core Data、Realm 等数据持久化方案的对比和选择,让我能够根据项目需求做出更明智的决策。总而言之,这是一本能够让你从“知道”到“理解”,再到“精通”的宝藏级读物,强烈推荐给有一定开发基础,希望深入了解 iOS 开发的同行。

评分

作为一名业余爱好者,我一直希望能找到一本既能让我快速上手,又能让我理解背后原理的 iOS 开发书籍。《iOS编程(第5版)》做到了!我最喜欢的是它清晰易懂的语言风格,即使是刚接触编程的读者,也能轻松理解。书中的插图和图表也帮助我更好地理解复杂的概念,比如动画的实现原理、手势识别的流程等等。我跟着书里的例子,成功地创建了一个带有滑动菜单和列表的简单应用,这个过程充满了乐趣和成就感。让我特别惊喜的是,书中还介绍了一些实用的技巧,比如如何调试代码、如何使用版本控制工具 Git,这些都是开始独立开发必不可少的基础。这本书就像一个经验丰富的导师,一步步引导我探索 iOS 开发的奇妙世界,让我对移动开发充满了热情和好奇心。

评分

不错的东西,性价比高,值得购买。

评分

书籍很基础,作为参考使用,

评分

哈哈哈好啊好哈哈哈好啊好哈哈哈好啊好哈哈哈好啊好哈哈哈好啊好哈哈哈好啊好哈哈哈好啊好哈哈哈好啊好

评分

通俗易懂,最近转iOS,看了之后帮助很大!

评分

既然京东自营的包装这么简陋,为什么快递人员不注意,书包总是要碰起角,希望京东给个说法?怎么办?

评分

教材说的有点老了,推荐大家直接看swift版的吧。

评分

还没看,还行吧,据说学学这个不错,但是现在搞小程序的话,这个还需要么?

评分

之前一直只信任当当的书,这次买了,发现京东书也还可以。

评分

既然京东自营的包装这么简陋,为什么快递人员不注意,书包总是要碰起角,希望京东给个说法?怎么办?

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有