-
内容大纲
本书针对iOS应用开发涉及的核心知识点进行详细剖析,分为Swift、编译器、iOS中的大前端技术三大章,从应用、进阶、未来三方面全方位剖析iOS开发。第1章从Swift源码和第三方库源码层面来分析iOS开发在实际工作中的常用核心知识,包括数据类型、编程范式、内存管理、网络处理、页面布局、完整的转译器和解释器等内容。第2章通过分析LLVM源码、编译后的可执行文件内部结构、链接器来讲解iOS开发进阶知识,同时介绍在实际工作中的应用场景和示例。第3章介绍在未来的iOS“大前端浪潮”中需要掌握的核心知识,包括 JavaScriptCore、WebCore等。
本书适合对iOS有兴趣的开发人员学习,也适合经验丰富的iOS开发者和对编程语言本身有兴趣的人员参考。 -
作者介绍
戴铭,阿里巴巴高级技术专家,滴滴出行前技术专家。有大量亿级APP工程架构、性能优化相关实战经验。 -
目录
第1章 Swift
1.1 Swift简介
1.2 泛型
1.2.1 类型约束
1.2.2 关联类型
1.2.3 类型擦除
1.2.4 Where语句
1.2.5 泛型和Any类型
1.3 集合
1.3.1 基本概念
1.3.2 迭代器
1.3.3 Sequence协议
1.3.4 Collection协议
1.3.5 Map
1.3.6 flatMap
1.3.7 Reduce
1.3.8 Array
1.3.9 弱引用的Swift数组
1.3.10 Dictionary
1.4 协议式编程
1.5 链式编程
1.6 Swift内存管理
1.6.1 内存分配
1.6.2 Swift派发机制
1.6.3 基本数据类型内存管理
1.6.4 struct内存管理
1.6.5 class内存管理
1.6.6 协议类型内存管理
1.6.7 泛型的内存管理
1.7 JSON数据的处理
1.7.1 使用JSONDecoder
1.7.2 CodingKey协议
1.7.3 JSONDecoder的keyDecodingStrategy属性
1.7.4 枚举定义block
1.7.5 inout
1.8 网络请求
1.9 自动布局SnapKit库分析
1.9.1 给谁做约束
1.9.2 如何设置约束
1.9.3 设置完约束后如何处理
1.10 用Swift实现一个简单的语言转译器
1.10.1 转译器简介
1.10.2 词法分析器
1.10.3 语法分析器
1.10.4 遍历器
1.10.5 转换器
1.10.6 代码生成器
1.10.7 Scheme的其他特性
1.10.8 Babel
1.11 用Swift开发一个简单的解释器
1.11.1 四则运算
1.11.2 算术表达式
1.11.3 中间表示
1.11.4 变量
1.11.5 属性
1.11.6 静态检查
第2章 编译器
2.1 LLVM简介
2.2 编译流程
2.3 使用clang命令编译.m文件
2.3.1 构建Target
2.3.2 Target在构建过程中的控制
2.4 clang static analyzer
2.5 IR代码
2.5.1 IR结构
2.5.2 LLVM IR 优化
2.5.3 SSA
2.6 clang 前端组件
2.6.1 库的介绍
2.6.2 使用libclang进行语法分析
2.7 Driver
2.7.1 Driver的工作流程
2.7.2 Parse
2.7.3 Pipeline
2.7.4 Action
2.7.5 Bind
2.7.6 Translate
2.7.7 Jobs
2.7.8 Execute
2.8 clang attribute
2.9 clang警告处理
2.10 通过LibTooling控制语法树
2.11 clang插件
2.12 LLVM Backend
2.12.1 CodeGen阶段
2.12.2 SelectionDAG
2.12.3 Register Allocation
2.12.4 Code Emission
2.13 LLVM优化
2.14 Swift编译
2.15 编译后生成的二进制内容Link Map File
2.16 编译后生成的dSYM文件
2.17 Mach-O文件
2.18 如何利用Mach-O
2.18.1 打印堆栈信息,保存现场
2.18.2 通过hook获取更多信息的方法
2.18.3 hook msgsend方法
2.18.4 统计方法调用频次
2.18.5 找出CPU使用的线程堆栈
2.18.6 Demo
2.19 dyld
2.20 LLVM工具链
2.20.1 获取LLVM
2.20.2 编译LLVM的源代码
2.20.3 LLVM源代码工程目录介绍
2.20.4 lib目录介绍
2.20.5 工具链命令介绍
第3章 iOS中的大前端技术
3.1 大前端技术简介
3.2 Weex实现技术
3.2.1 将iOS工程集成WeexSDK
3.2.2 自定义端内能力的Module
3.2.3 读取用JavaScript写的Weex内容
3.2.4 从Vue代码到 JS bundle
3.2.5 在端内运行JS bundle的原理
3.3 JavaScriptCore
3.3.1 JavaScriptCore介绍
3.3.2 JavaScriptCore全貌
3.3.3 JavaScriptCore与WebCore
3.3.4 词法、语法分析
3.3.5 从代码到JIT的过程
3.3.6 分层编译
3.3.7 类型分析
3.3.8 指令集架构
3.3.9 JavaScript
3.4 WebCore
3.4.1 浏览器历史
3.4.2 WebKit全貌
3.4.3 WTF
3.4.4 Loader
3.4.5 HTML词法解析
3.4.6 HTML语法解析
3.4.7 构建DOM Tree
3.4.8 CSS
3.4.9 RenderObject Tree
3.4.10 Layout
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...