本文旨在为每个技术标签的进阶提供一些参考,Hybrid,Swift,性能优化,设计模式,页面布局,本地数据存储,网络交互,音视频等。

Hybrid

初级

  1. 熟练掌握UIWebView 的使用
  2. 熟练掌握UIWebViewHTML页面的交互,包括拦截请求以及JavascriptCore
  3. 熟练掌握譬如 Charles 等抓包工具的使用

中级

  1. 熟练掌握WKWebView的使用,掌握其与UIWebView的不同之处
  2. 熟悉整个HTML页面的加载流程,熟知常见的DOM元素以及相关事件
  3. 熟练使用 Safari 对内嵌页面进行调试,掌握基本的Javascript书写
  4. 了解Javascript跨域安全问题,掌握NSURLCacheNSURLProtocol的使用

高级

  1. 熟练掌握Javascript以及HTML5特性,可独立完成一套完整的HTML5页面
  2. 阅读WebKit以及JavascriptCore源码,了解它们的核心逻辑
  3. 熟悉HTTP协议,以及基于HTTP的通讯协议,如SoapXMLRPC
  4. 熟悉 Web服务器 的基本工作原理,可在应用内内嵌,如GCDWebServerCocoaHTTPServer

学习资源

Swift

入门

  1. 熟练基本语法
  2. 熟练OC混编能力
  3. 了解函数式编程范式

进阶

  1. 熟练掌握Swift高级用法
  2. 深入剖析Swift源码

学习资源

性能优化

入门

  1. 熟悉Instruments基本使用,内存泄漏监测
  2. 了解FPS,图层绘制基本原理
  3. 了解App的加载及运行机制
  4. 了解内存分配机制
  5. 了解多线程机制

进阶

  1. 熟练掌握Instruments各类分析工具
  2. 熟练掌握FPS,内存,线程等运行机制
  3. 深入DTrace细节
  4. 自动化性能测试

学习资源

  1. DTrace 介绍
  2. Apple 文档
  3. 测试定位内存泄露
  4. FPS提升-AsyncDisplayKit:

设计模式

初级

  1. 深入理解面向对象设计,并理解与编程范式之间的区别
  2. 熟练掌握面向对象的基本设计原则(SOLID
  3. 熟悉GoF的23种面向对象设计模式
  4. 熟悉一些辅助设计的框架,包括AOPIoC

中级

  1. 熟练掌握常见的一些架构模式,如MVCMVPMVVM
  2. 熟练掌握分层架构(常见的三层架构、N层架构等),以及分层的基本原则
  3. 熟悉常见的软件体系结构风格,包括 管道-过滤器式层次式面向对象式,以及它们之间的区别

高级

  1. 熟悉常见的软件开发模式,包括敏捷、瀑布、迭代等,包括常见的XPSCRUM
  2. 熟悉常见的软件设计方式,包括 领域驱动设计模型\数据驱动设计测试驱动设计
  3. 熟悉企业级应用的架构模型,包括 分布式负载均衡

学习资源

页面布局

入门

  1. 熟悉Xib, Storyboard工具
  2. 熟悉Autolayout,SizeClass,UIStackView,CGRect等布局方式

进阶

  1. iOS 多设备的布局优化
  2. 深入理解布局相关的源码与机制
  3. 多类布局方式的最佳实践

学习资源

  1. 像素是如何绘制到屏幕上的: http://objccn.io/issue-3-1/
  2. 页面布局,页面渲染的原理: https://developer.apple.com/library/ios/documentation/2DDrawing/Conceptual/DrawingPrintingiOS/GraphicsDrawingOverview/GraphicsDrawingOverview.html#//apple_ref/doc/uid/TP40010156-CH14-SW14
  3. AutoLayout: http://www.cocoachina.com/ios/20151021/13825.html
  4. SizeClass
  5. UIView及其扩展接口深入理解 http://my.oschina.net/w11h22j33/blog/208574?fromerr=4ylkDitz
  6. MASConstraint https://github.com/SnapKit/Masonry

本地数据存储

入门

  1. 熟悉各类本地数据存储,SQLite(FMDB),CoreData,UserDefaults
  2. 熟悉SQL基本语法
  3. 了解NOSQL基本原理,并熟悉YapDatabase, Realm等
  4. 熟练使用数据库查看工具SQLite Professional

进阶

  1. 最佳实践

学习资源

网络交互

知识范围

  • BSD Socket
  • CFNetwork
  • 缓存
  • HTTP / TCP 协议

学习资源

音视频

学习资源


评论