《跟戴銘學iOS編程:理順核心知識點》是2020年1月電子工業出版社出版的圖書,作者是戴銘。
基本介紹
- 書名:跟戴銘學iOS編程:理順核心知識點
- 作者:戴銘
- ISBN:9787121356889
- 頁數:300頁
- 定價:79元
- 出版社:電子工業出版社
- 出版時間:2020年1月
- 開本:16開
內容簡介,圖書目錄,
內容簡介
本書針對 iOS 套用開發涉及的核心知識點進行詳細剖析,分為 Swift、編譯器、iOS 中的大前端技術三大章,從套用、進階、未來三方面全方位剖析 iOS 開發。第1章從 Swift 源碼和第三方庫源碼層面來分析ios開發在實際工作中的常用核心知識,包括數據類型、編程範式、記憶體管理、網路處理、頁面布局、完整的轉譯器和解釋器等內容。第2章通過分析 LLVM 源碼、編譯後的執行檔內部結構、連結器來講解 iOS 開發進階知識,同時介紹在實際工作中的套用場景和示例。第3章介紹在未來的iOS “大前端浪潮”中需要掌握的核心知識,包括 JavaScriptCore、WebCore 等。本書適合對 iOS 有興趣的開發人員學習,也適合經驗豐富的 iOS 開發者和對程式語言本身有興趣的人員參考。
圖書目錄
第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