iOS 技术标签的知识范围及学习资源
本文旨在为每个技术标签的进阶提供一些参考,Hybrid,Swift,性能优化,设计模式,页面布局,本地数据存储,网络交互,音视频等。
Hybrid
初级
- 熟练掌握
UIWebView
的使用 - 熟练掌握
UIWebView
和HTML
页面的交互,包括拦截请求
以及JavascriptCore
- 熟练掌握譬如 Charles 等抓包工具的使用
中级
- 熟练掌握
WKWebView
的使用,掌握其与UIWebView
的不同之处 - 熟悉整个
HTML
页面的加载流程,熟知常见的DOM
元素以及相关事件 - 熟练使用 Safari 对内嵌页面进行调试,掌握基本的
Javascript
书写 - 了解
Javascript
跨域安全问题,掌握NSURLCache
、NSURLProtocol
的使用
高级
- 熟练掌握
Javascript
以及HTML5
特性,可独立完成一套完整的HTML5
页面 - 阅读
WebKit
以及JavascriptCore
源码,了解它们的核心逻辑 - 熟悉
HTTP
协议,以及基于HTTP
的通讯协议,如Soap
、XMLRPC
等 - 熟悉 Web服务器 的基本工作原理,可在应用内内嵌,如
GCDWebServer
、CocoaHTTPServer
等
学习资源
- Apple 开发文档
- W3School:http://www.w3school.com.cn/
- HTML5中国:http://www.html5cn.org/
- HTTP协议详解:http://blog.csdn.net/gueter/article/details/1524447
- GCDWebServer:https://github.com/swisspol/GCDWebServer
- CocoaHTTPServer:https://github.com/robbiehanson/CocoaHTTPServer
- Weex
- JSPatch
- React-Native
Swift
入门
- 熟练基本语法
- 熟练OC混编能力
- 了解函数式编程范式
进阶
- 熟练掌握Swift高级用法
- 深入剖析Swift源码
学习资源
- The Swift Programming Language(Swift 2.1)
- Using Swift with Cocoa and Objective-C (Swift 2.1)
- Swift 官网
- Swift 源码
- Swift翻译组
- ReactiveCocoa
性能优化
入门
- 熟悉Instruments基本使用,内存泄漏监测
- 了解FPS,图层绘制基本原理
- 了解App的加载及运行机制
- 了解内存分配机制
- 了解多线程机制
进阶
- 熟练掌握Instruments各类分析工具
- 熟练掌握FPS,内存,线程等运行机制
- 深入DTrace细节
- 自动化性能测试
学习资源
设计模式
初级
- 深入理解面向对象设计,并理解与编程范式之间的区别
- 熟练掌握面向对象的基本设计原则(SOLID)
- 熟悉
GoF
的23种面向对象设计模式 - 熟悉一些辅助设计的框架,包括
AOP
、IoC
等
中级
- 熟练掌握常见的一些架构模式,如
MVC
、MVP
、MVVM
等 - 熟练掌握分层架构(常见的三层架构、N层架构等),以及分层的基本原则
- 熟悉常见的软件体系结构风格,包括 管道-过滤器式、层次式、面向对象式,以及它们之间的区别
高级
- 熟悉常见的软件开发模式,包括敏捷、瀑布、迭代等,包括常见的
XP
、SCRUM
等 - 熟悉常见的软件设计方式,包括 领域驱动设计、模型\数据驱动设计、测试驱动设计 等
- 熟悉企业级应用的架构模型,包括 分布式、负载均衡 等
学习资源
- 面向对象设计原则:http://www.cnblogs.com/feipeng/archive/2007/03/02/661840.html
- 23种设计模式:http://blog.csdn.net/longyulu/article/details/9159589
- 分层架构设计原则:http://www.cnblogs.com/chencheng/archive/2012/07/05/2575406.html
- 领域驱动设计:http://www.cnblogs.com/xishuai/category/572887.html
- 书籍:《敏捷软件开发:原则、模式与实践》
- 博客:http://casatwy.com/
页面布局
入门
- 熟悉Xib, Storyboard工具
- 熟悉Autolayout,SizeClass,UIStackView,CGRect等布局方式
进阶
- iOS 多设备的布局优化
- 深入理解布局相关的源码与机制
- 多类布局方式的最佳实践
学习资源
- 像素是如何绘制到屏幕上的: http://objccn.io/issue-3-1/
- 页面布局,页面渲染的原理: https://developer.apple.com/library/ios/documentation/2DDrawing/Conceptual/DrawingPrintingiOS/GraphicsDrawingOverview/GraphicsDrawingOverview.html#//apple_ref/doc/uid/TP40010156-CH14-SW14
- AutoLayout: http://www.cocoachina.com/ios/20151021/13825.html
- SizeClass
- UIView及其扩展接口深入理解 http://my.oschina.net/w11h22j33/blog/208574?fromerr=4ylkDitz
- MASConstraint https://github.com/SnapKit/Masonry
本地数据存储
入门
- 熟悉各类本地数据存储,SQLite(FMDB),CoreData,UserDefaults
- 熟悉SQL基本语法
- 了解NOSQL基本原理,并熟悉YapDatabase, Realm等
- 熟练使用数据库查看工具SQLite Professional
进阶
- 最佳实践
学习资源
- SQLite 官网
- CoreData
- Realm
- 源码
网络交互
知识范围
- BSD Socket
- CFNetwork
- 缓存
- HTTP / TCP 协议