Recently, an old friend of The Weekly, Mr. Daming, wrote a new book, learn iOS Programming with Daming.

Below is the table of contents of the book

Chapter 1 analyzes the common core knowledge of ios development in practical work from Swift source code and third-party library source code level, including data type, programming paradigm, memory management, network processing, page layout, complete translator and interpreter, etc.

Chapter 2 explains the advanced knowledge of iOS development by analyzing LLVM source code, internal structure of compiled executable file and linker, and introduces application scenarios and examples in practical work.

Chapter 3 introduces the core knowledge needed to master in the future “big front-end wave” of iOS, including JavaScriptCore, WebCore and so on.

Chapter 1 Swift

1.1 Swift introduction 1.2 Generics 1.2.1 Type constraints 1.2.2 Association Types 1.2.3 Type Erasures 1.2.4 Where statements 1.2.5 Generics and Any types 1.3 Sets 1.3.1 Basic Concepts 1.3.2 Iterators 1.3.3 Sequence protocol 1.3.4 Collection protocol 1.3.5 Map 1.3.6 flatMap 1.3.7 Reduce 1.3.8 Array 1.3.9 Weakly referenced Swift Array 1.3.10 Dictionary 1.4 Protocol programming 1.5 Chain programming 1.6 Swift Memory Management 1.6.1 Memory Allocation 1.6.2 Swift Distribution mechanism 1.6.3 Basic Data Types Memory management 1.6.4 Struct Memory Management 1.6.5 Class Memory Management 1.6.6 Protocol Type Memory Management 1.6.7 Generic memory management 1.7 Processing JSON data 1.7.1 Using JSONDecoder 1.7.2 CodingKey protocol 1.7.3 keyDecodingStrategy property of JSONDecoder 1.7.4 Enumerating Block 1.7.5 InOut 1.8 Network Requests 1.9 Automatic Layout SnapKit Library Analysis 1.9.1 Who To Restrict 1.9.2 How To Set Constraints 1.9.3 What to Do After Setting Constraints 1.10 Using Swift Implement a simple language translator 1.10.1 Introduction to the translator 1.10.2 Lexical Analyzer 1.10.3 Parser 1.10.4 Traverser 1.10.5 Converter 1.10.6 Code Generator 1.10.7 Other features of Scheme 1.10.8 Babel 1.11 Developing a simple interpreter with Swift 1.11.1 Four Operations 1.11.2 Arithmetic Expressions 1.11.3 Intermediate representation 1.11.4 Variables 1.11.5 Properties 1.11.6 Static checking

Chapter 2 Compiler 2.1 Introduction to LLVM 2.2 Compilation Process 2.3 Compilation using the Clang Command. M files 2.3.1 Build Target 2.3.2 Control of Target during build 2.4 Clang Static Analyzer 2.5 IR Code 2.5.1 IR Structure 2.5.2 LLVM IR Optimization 2.5.3 SSA 2.6 Clang Front-end Components 2.6.1 Introduction to Libraries 2.6.2 Syntax Analysis using Libclang 2.7 Driver 2.7.1 Driver workflow 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 warning handling 2.10 Controlling the syntax tree using LibTooling 2.11 Clang plug-in 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 optimization 2.14 Swift Compilation 2.15 Binary Content Generated after Compilation Link Map File2.16 dSYM File generated after Compilation 2.17 Mach-O File 2.18 How to Use Mach-O 2.18.1 Printing stack information, 2.18.2 Method to obtain more information through Hook 2.18.3 Hook MSgsend method 2.18.4 Counting method call frequency 2.18.5 Finding thread stack used by CPU 2.18.6 Demo 2.19 dyld 2.20 LLVM Tool Chain 2.20.1 Obtaining LLVM 2.20.2 Compiling LLVM Source Code 2.20.3 LLVM Source Code Project Directory 2.20.4 Lib Directory 2.20.5 Tool Chain Commands

Chapter 3 Big Front-end Technology in iOS 3.1 Introduction to Big Front-end Technology 3.2 Weex Implementation Technology 3.2.1 Integrating iOS projects with WeexSDK 3.2.2 Customizing the Moduleof in-terminal capabilities 3.2.3 Reading Weex content written in JavaScript 3.2.4 From Vue Code to JS Bundle 3.2.5 Principle of Running JS Bundle in An End 3.3 JavaScriptCore 3.3.1 Introduction to JavaScriptCore 3.3.2 Overview of JavaScriptCore 3.3.3 JavaScriptCore and WebCore 3.3.4 Lexical and syntax analysis 3.3.5 Process from code to JIT 3.3.6 Hierarchical Compilation 3.3.7 Type analysis 3.3.8 Instruction set architecture 3.3.9 JavaScript 3.4 WebCore 3.4.1 Browser History 3.4.2 WebKit Overview 3.4.3 WTF 3.4.4 Loader 3.4.5 HTML lexical Parsing 3.4.6 HTML Syntax parsing 3.4.7 Building a DOM Tree 3.4.8 CSS 3.4.9 RenderObject Tree 3.4.10 Layout

This is a hard extension, so you have to send out a wave of benefits. There are three benefits.

1. 
Microblog forwarding lottery.
Five signed copies of “Learning iOS Programming with Daming: Straightening out the Core Knowledge points” are presented.

2. Small program click lucky draw.

Click the small program below to send five copies of “Learning iOS Programming with Daming: Straightening out the core Knowledge points”.


3. Book at a discount