系列

导航

应用

博客列表 简介
iOS App 上架审核发布

iOS

Effective Objective-C 2.0

博客
Objective-C语言(一)熟悉Objective-C
Objective-C语言(二)对象、消息、运行期
Objective-C语言(三)接口与API设计
Objective-C语言(四)协议与分类
Objective-C语言(五)系统框架
Objective-C语言(六)Block与GCD
Objective-C(七)对象内存分析
Objective-C(八)对象的本质及分类
Objective-C(九)KVC 与 KVO
Objective-C(十)Category
Objective-C(十一)load 和 initialize
Objective-C(十二)关联对象

Modal解析

博客列表
解码YYModel(一)基础
解码YYModel(二)特性
解码YYModel(三)参考
构建iOS Model层(一)最简单的实现Model解析
构建iOS-Model层( 二)类型解析
构建iOS-Model层(三)嵌套解析

内存管理

博客列表
内存管理(一)引入
内存管理(二)Tagged Pointer
内存管理(三)MRC与ARC
内存管理(四)引用计数与weak
内存管理(五)copy
内存管理(六)autorelease

RunLoop

博客列表
RunLoop(一)认识RunLoop
RunLoop(二)对象
RunLoop(三)运行
RunLoop(四)应用

Runtime

博客列表
Runtime(一)Runtime简介
Runtime(二)isa指针
Runtime(三)方法缓存
Runtime(四)objc_msgSend
Runtime(五)类的判定

组件化

博客列表
组件化(一)Cocoapods
组件化(二)Cocoapods - 创建私有库
组件化(三)静态库和动态库
组件化(四)选型——待补
组件化(五)客户端模块化方案实现——待补
组件化(六)自动化打包——待补
组件化(七)持续集成与发布——待补

编译

博客列表 简介
Mach-O(一)结构
Mach-O(二)内存分布

网络

博客列表 简介
HTTP(一): 基础
HTTP(二):请求与响应
HTTP(三):URL 编码与解码
HTTP(四):HTTPS
HTTP(五):会话跟踪

多线程

多线程

博客列表 简介
多线程(一)进程与线程
多线程(二)方案
多线程(三)NSThread——待补
多线程(四)NSOperation——待补
多线程(五)GCD——待补
多线程(六)线程同步
多线程(七)锁
多线程(八)应用——待补

安全

逆向

博客列表 简介
逆向(一)环境搭建
逆向(二)Cycript
逆向(三)逆向工具
逆向(四)脱壳
逆向(五)Theos 工具
逆向(六)动态调试
逆向(七)重签名

后端

Java

博客列表 简介
Mac Java 环境搭建
Maven 指南
Tomcat 指南
Hexo 部署到阿里云 Unbutu 服务器
部署 Spring Boot 项目到 Tomcat 服务器
Mac SSH免密码登录阿里云Unbutu服务器

数据库

博客列表 简介
MySQL 指南 —— 环境搭建
MySQL 指南 —— 数据库操作

前端

Javascript

博客列表 简介
npm 的安装与使用

Hexo 博客

博客列表 简介
npm 的安装与使用
Hexo 升级及Next主题升级
Hexo部署到阿里云Unbutu服务器

框架

推送通知

博客列表
通知那些事儿(一):简介
通知那些事儿(二):深度剖析本地与远程通知
通知那些事儿(三):注册、调度及处理用户通知
通知那些事儿(四):Apple Push Notification Service
通知那些事儿(五):远程通知有效载荷
通知那些事儿(六):更多的注意点
iOS 12 通知新特性及适配

其他

博客列表
[译]iOS应用开发指南
[译]URL Session编程指南
iOS 版本兼容
NSTimer定时器

工具与环境

博客列表
SSH Key for Github
Github国内访问如何加速
iTerm2
mac 安装 Ruby

随笔

博客列表
如何阅读一本书
点春