转载自:https://www.jianshu.com/p/1f2907512046

Q: 我从事 iOS 两年了,感觉只会搭建view,用第三方库,还有些机械代码?真的迷茫了。想进阶,具体从什么大点入手呢?

A: 说实话,两年时间只会搭建view、使用第三方类库,真的不能称为一个合格的iOS开发工程师!

1 先说OC部分

既然做了两年了,对Objective-C足够了解吗?OC是如何基于C来进行的封装?解释一下这两行代码啥意思?

typedef __attribute__((NSObject)) CGGradientRef GradientObject;

@property (nonatomic, strong) GradientObject storedGradient;

protocol、category这样的东西应该要手到擒来才是?多线程部分的知识点掌握是否扎实?runtime这种黑魔法研究过没?代码足够优雅、后续维护容易吗?各种设计模式也得会吧?

2 再说UI部分

既然写了两年的view,那么能快速仿造市面上这些主流App的UI吗?使用Reveal分析过微信、豆瓣、网易新闻、知乎、QQ、苏宁、淘宝、支付宝的UI吗?使用Charles去抓过他们的接口吗?

UI研究稍微深一点,比如侧滑菜单这种要怎么实现?如果你要做实现应该要了解UIView和UIViewController,UIViewController和UINavigationController的关系了吧?我嘞个草,UIView一堆方法,UIViewController一堆方法,到底都是干嘛的啊?你难道不好奇?这块知识点一直是你的盲区,你能忍?我忍不了!

UIView再往深了看,下面还有CALayer,你研究过没?为什么修改CALayer的某些property默认会有个动画产生呢?

那么Animation、UIKit Dynamics、Drawing、Graphics这些随便拎出来一个,够你研究一阵了吧?你看看比如网易新闻,在新闻详情页面上拉,回到新闻列表页面的这个动画做的出来吗?你看看QQ在电话通信页面,点击右下角缩放图标,缩放成一个头像的这种动画,你会做不?

3 还有这些大的功能点

既然用了两年第三方类库,那么比如图片缓存这类,看过源码实现没?如果自己来实现的话,有哪些Caching Algorithms?该怎么取舍?各种常用的第三方类库你研究过原理没?

你的App在和服务器交流数据的过程中安全性怎么样?你是不是要研究一下加解密?HTTP理解的够清楚吗?想没想过自己来写接口?或者更甚至一些自己来写个简易的HTTP服务器?接口部分甚至用CGI来实现也可以啊!

要写服务器,那应该要了解一下网络部分吧?TCP/IP 协议得熟悉吧?然后Wireshark各种抓包得会吧?

网络这块顺带过来之后,即时聊天类的App采用的什么技术?选 xmpp 还是 mqtt 还是自己写?正好可以顺势了解一下吧!

iOS SDK里面的各种API你掌握到了什么程度?这些功能模块排除地图、通讯录这种,说些高级的比如CloudKit、Extensions、TextKit、AirDrop、PassKit?觉得这些模块在自家公司的项目中压根没用过?可是看看你手边的App!

4 其它专业化的方向

视音频处理做过吗?此类诸如豆瓣FM、虾米音乐、喜马拉雅、QPlayer这类的App你去研究过他们吗?还有VoIP这类的,我实习的时候做过这种╮(╯_╰)╭

游戏开发方向有没有兴趣?自己有没有去研究过呢?(反正这个我是真没有╮(╯_╰)╭)

5 项目安全优化等

项目中写单元测试吗?UI Automation 自动化测试做的怎么样?持续集成平台诸如Jenkins等会用吗?

App的各种性能优化、Crash的统计分析等等你做了没?

App本地数据储存够安全吗?你对逆向了解多少?敏感部分是否做了代码混淆?

6 知识体系要持续更新

官方的文档、国外的相关书籍采用的语言都是Swift,难道你不准备学学?除了native的,现在的HTML5也很火啊,难道不准备学?

英文练习的怎么样了?官方所有的开发者文档以及历年的WWDC视频看完了?这么多书,这么多大牛的博客,你难道从中一无所获?

补充一个非常重要的进阶知识板块:APP架构设计

MVC 你就耳熟能详了,MVVM 你不打算了解了解吗?

-----------------上面的是别人,下面的是我的补充------------------------------

1)CoreData的多线程 了解没?  CoreData 的不同版本的数据迁移怎么做?

2)runtime 如何使用?runtime的原理,用在项目中.

3)runloop 的理解,项目中如何使用

4)js与oc 的交互会不会?

5)GCD ,NSThread ,NSOperation 能不能滔滔不绝的讲出来?

6)会不会写插件 ?

7)block 理解是否深入?

8)动画订单制作是否清楚,并且用在项目中

9)keyChain 钥匙串存储

10)apple pay,3Dtouch 是否学习下?

11)stackView 的使用?

12)网络加密,

13)推送的深入理解

14)pop 动画框架的学习

15)reactiveCocoa 使用

16)逆向工程,反编译.

17)内存管理详细了解

18)app 瘦身技术

19)cocoapods 使用

20 )github 项目

21)插件制作

22 打包.a  和framwork

作者:wg689
链接:https://www.jianshu.com/p/1f2907512046
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

iOS 高级工程师是怎么进阶相关推荐

  1. iOS初级开发工程师进阶之路

    我觉得是时候,也有必要,承认一下自己的错,压制一下趾高气扬的自己,在知乎上看到一个帖子,有点被打击到了.帖子中涉及到的问题,我给贴出来,各位小伙伴们一起开探讨一下,问题的答案,有知道的请在后面留言 首 ...

  2. iOS安全入门与进阶

    清晨的西二旗是充满活力的,也是拥挤的.人来人往的地铁站前满是手持电话,拎着早点,迈着碎步追赶班车的西二旗er,当然,小i也不能免俗,左持蒸饺卤蛋豆腐脑,右提磨砂黑32G iphone 7(手机当然是背 ...

  3. 【图灵】iOS技能书单——入门+进阶+精通

    小编最近在研究一份不错的技能图谱(https://github.com/TeamStuQ/skill-map),遵照图谱精神,小编先做了个iOS技能书单,分享给大家. 老样子,点击书名查看完整目录和试 ...

  4. ios purelayout--基础使用--进阶使用--看这就够了

    //******************************基础设置--start*********************************//一.视图本身 //1.设置高度 [self. ...

  5. iOS开发--Kiwi使用进阶 Mock, Stub, 参数捕获和异步测试

    Kiwi 是 iOS 的一个行为驱动开发 (Behavior Driven Development, BDD) 的测试框架,我们在上一篇入门介绍中简单了解了一些 iOS 中测试的概念以及 Kiwi 的 ...

  6. Kiwi,BDD行为测试框架--iOS攻城狮进阶必备技能

    简介 Kiwi 是一个适用于iOS开发的行为驱动测试框架,旨在提供一个足够简单易用的BDD库. 项目主页: https://github.com/kiwi-bdd/Kiwi 示例下载: https:/ ...

  7. 某TMD公司iOS高级工程师面试回忆

    前言:TMD某T的iOS高级开发岗第三面,下面记录这次面试的回忆以作日后复习. 一.自我介绍 简单介绍一下你自己吧 解析:简单介绍下自己的名字,教育背景,现在的工作,做过的项目 二.自我介绍衍生的口头 ...

  8. iOS 高级工程师面试必备

    请简要介绍一下 MVC.MVVM 和 VIPER 架构模式.它们的优缺点分别是什么? MVC(Model-View-Controller): MVC 是一种经典的软件架构模式,主要分为三个部分:Mod ...

  9. iOS知识点收藏梳理

    C 语言 iOS零碎知识--C语言内存分配函数区别 C语言的指针大归纳[三大关系(Five) C语言探索之旅 | 第一部分第五课:运算那点事 Swift 语言 Swift编程风格 Swift语法练习大 ...

  10. iOS runtime 详解和使用场景(最详细的使用教程)

    一.Runtime介绍 OC是对C语言的扩展,加入了面向对象和消息发送机制,Runtime是OC的一个核心,是用C语言和汇编语言编写.OC是动态运行时语言,在运行时确定一个对象的类型.调用哪个对象的方 ...

最新文章

  1. 驱动和应用层通信列子
  2. mysql专区_MySQL-技术专区-详解索引原理
  3. linux shell的输出效果修改方法(界面颜色)
  4. cdr怎么转换成psd转换为位图标准_动漫角色转换真人,飞屋环游记中的小罗竟酷似他……...
  5. Camera Calibration 相机标定:原理简介(三)
  6. C语言重难点总结:printf和scanf
  7. linux安半程序自动确认,利用system-config-kickstart实现半自动化安装
  8. VISIO—如何打开?及安装教程
  9. linux下编译opendds,Linux下编译OpenDDS
  10. 服务器 运行时错误怎么办,内部服务器错误怎么办
  11. VSCode沙绿色主题设置
  12. MongoDB的分片集群
  13. IDEA中 单元测试@Test的使用
  14. Configuring the Salt Minion - Salt Minion配置参数的完全说明
  15. 时代周刊对比海地与汶川地震 称赞中国重建能力
  16. CDH6.3整合Carbondata
  17. java toast_详解Android中的Toast源码
  18. 八、快速生成树协议RSTP配置
  19. 美国多年提高网安预算分析
  20. 在VB中使用水晶报表总结

热门文章

  1. bpm导出成html,一种基于BPM系统的EXECL导入免开发生成静态HTML表单的方法与流程...
  2. xp系统 服务器,xp系统当服务器
  3. 捋一捋Android的转场动画
  4. hc-sr04程序c语言,HC-SR04(HY-SRF05)超声波测距串口显示(超详细版单片机源程序)
  5. 机器学习分类问题标签如何做编码
  6. win10雷电3接口驱动_[九猫win10系统]Intel处理器福利普及雷电3接口:微软/苹果强烈支...
  7. 【PS/PSD】237款日系小清新文艺唯美梦幻手绘插画分层PSD素材
  8. 怎样恢复内存卡的视频文件?(图文操作解析)
  9. 2021-2023年个人发展规划整理
  10. matlab混频器的实现