前言
技术栈就是在某一个领域(项目或工程)所需要的一堆技能,整理起来的技术链。作为一个程序猿有必要整理一下自己的技能树方便查缺补漏,所以整理了一下这几年做IOS开发接触或使用到的技能树。这份整理的技能树带有很大的个人技能倾向性。
技术栈
一.语法
1.Objective-C
- 基础语法
- 对象模型
- 动态特效
2.swift
- 基础语法
3.C语言
- 基础语法
- 面向对象
- 数据结构与算法
- 常用网络协议
二.UI
1.页面绘制
- UIkit
- Core Animation
- Core Text
2.动画
- Core Graphics
- Quartz 2D
3.图像处理
- openGL ES
- GLKit
- SpriteKit
- SceneKit
4.音频视频
- AudioToolbox
- AVAudioPlayer
三.网络
1.通讯协议
- TCP/UDP
- Http/Https
2.断点下载
3.断点上传
4.网络异常(弱网)处理
四.存储
1.文件系统与沙盒机制
2.NSUserDefaults存储
3.文件读写
4.数据流读写
5.数据库
五.线程
1.线程类型
- GCD
- NSHread
- NSOperationQueue
2.线程通讯
3.线程锁
六.内存
1.内存管理机制ARC/MRC
2.内存泄露原理
3.缓存管理
七.架构
1.设计模式
- MVC
- MVVM
- KVO
- KVC
2.路由
3.Native与Web混合开发架构
- JSBridge
- UIWebView/WKWebView
八.系统
1.RunLoop
2.RunTime
九.安全
1.应用安全防护
- 加固
- 完整性校验
- 签名校验
- 放动态调试
- 越狱检测
- 越狱
2.沙盒
3.网络安全
- 通讯加密
- https ssl证书校验
十.数据加解密
1.对称加密
2.非对称加密
3.报文加解密优化
十一.代码管理
1.SVN
1.git
十二.证书与发布管理
1.签名原理
2.证书签发流程
3.上架流程
4.审核问题处理
十三.开发工具
1.快捷键
2.插件
3.调试与性能测试工具
总结
以上技术栈是根据个人开发经验所整理的,也是对自己IOS技能的一个总结。会有些遗漏或者不完全合理的地方,在不断学习中会继续添加修改。