前言:

一名合格的iOS开发工程师需要具备哪些技能和素质,会搭建view,使用第三发库,够么?说实话,还真的不够。我们从以下几点看一下:

1 OC部分

你对Objective-C有多了解?
OC是如何基于C来进行的封装?
解释一下下面两行代码啥意思?

typedef __attribute__((NSObject)) CGGradientRef GradientObject;@property (nonatomic, strong) GradientObject storedGradient;

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

2 UI部分

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

UI研究稍微深一点,比如侧滑菜单这种要怎么实现?

如果你要做实现应该要了解UIView和UIViewController,UIViewController和UINavigationController的关系了吧?我嘞个草,UIView一堆方法,UIViewController一堆方法,到底都是干嘛的啊?你难道不好奇?这块知识点一直是你的盲区,你能忍?我忍不了!

作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:413038000,不管你是大牛还是小白都欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!

推荐阅读

iOS开发——最新 BAT面试题合集(持续更新中)

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视频看完了?这么多书,这么多大牛的博客,你难道从中一无所获?

以上是技术方面,你还需要时间学习研究,积累经验的。下面我们聊一下,一名优秀的工程师,在心态和思维上,会怎么做呢?

重复而低效的工作留给工具做

将重复而低效的任务,让工具做,将重复任务自动化,能够极大地提高效率,节约时间,比如,使用CocoaPods。

搜索,思考,阅读,动手尝试,改进优化,总结知识

一些优秀的 iOS 工程师并没有比你我聪明,跟我们一样只是普通人,但他们在上面这些事情上不懒惰,积极思考、尝试、总结,在同样的条件下收获多一点点,日积月累,于是他们变得优秀。而且这种积累所达到的层次,很难被人短时间追赶上,是非常具有竞争力的。

面对这些优秀的 iOS 工程师,我们经常会犯另一种懒惰的错误:我们总想加好友,攀交情,甚至用拉低姿态的方式,总觉得自己抱上大腿就能迅速成长,迅速变牛。这其实是种假象,是自己不自信不独立的表现。即使加了好友,他们能够答疑解惑,甚至手把手教,亲自帮忙解决问题又怎样,那还是别人的东西,自己没有任何成长。

学习与成长从来没有捷径,也只能靠自己!

我是如何从一个小哈喽进阶为高级iOS的?相关推荐

  1. python股票网格交易法详解_我的选股方法 大家好,我是阿兰,一个将网格交易法应用于股票的人。昨天我给大家介绍了我的网格交易体系,并简单说明了我的选股方法,今天我将... - 雪球...

    来源:雪球App,作者: 阿兰2020,(https://xueqiu.com/8150769058/143090329) 大家好,我是阿兰,一个将网格交易法应用于股票的人.昨天我给大家介绍了我的网格 ...

  2. 证明“我是我”是一个怎样的过程?

    ​ 证明"我是我"是一个身份识别过程 自古以来,无论走到哪里,人们都会被一个哲学问题困扰--我是谁?我从哪里来?我要到哪里去?为此,人们必须努力证明:我是我:他人也要不断的对我们进 ...

  3. 很多人都想考一个RHCE吧,大家不妨看看我是怎么变成一个RHCE的。

    从CHINAUNIX上看到的文章,很有感慨,一个学计算机的同学的经历,在河南这个地方,很多同学毕业,都不干计算机相关的工作,看看人家的酸甜苦辣吧. http://bbs.chinaunix.net/t ...

  4. 我是这样变成一个RHCE的(转)

    我是这样变成一个RHCE的(转)[@more@]转贴: 一个新手RHCE的酸甜苦辣,很多人都想考一个RHCE吧,大家不妨看看我是怎么变成一个RHCE的. 1 爱之出体验 我2003年11月第一次接触l ...

  5. java在线学习网站源码_我是怎么开发一个小型java在线学习网站的

    2016/1/27 11:55:14 我是怎么开发一个小型java在线学习网站的 一直想做一个自己的网站(非博客),但是又不知道做什么内容的好,又一次看到了w3schools,就萌发了开发一个在线ja ...

  6. 知乎大神关于高级ios进阶

    链接:https://www.zhihu.com/question/39597307/answer/82258462 在我个人的概念里面, 高级 iOS 工程师的定义,其中 iOS 只占了一半,这一半 ...

  7. Py之matplotlibseaborn :matplotlibseaborn绘图的高级进阶之高级图可视化(基础图(直方图等),箱线图、密度图、小提琴图等)简介、案例应用之详细攻略

    Py之matplotlib&seaborn :matplotlib&seaborn绘图的高级进阶之高级图可视化(基础图(直方图等),箱线图.密度图.小提琴图等)简介.案例应用之详细攻略 ...

  8. 一个静态库框架模板: iOS Universal Framework Mk 7

    项目地址: https://github.com/kstenerud/iOS-Universal-Framework 这是一个Xcode 4使用的项目模板,而不是一个新的开源框架. 这是项目主页,介绍 ...

  9. 如果你恨一个程序员 忽悠他去做iOS开发

    如果你恨一个程序员 忽悠他去做iOS开发 本文源地址:https://blog.csdn.net/m0_37711172/article/details/79867780 查看全文 http://ww ...

最新文章

  1. 45.2mAP+155FPS! PP-YOLO来了, 精度速度双超YOLOv4
  2. 分析一个软件要考虑的问题
  3. 网络推广中网络推广专员如何培养与搜索引擎的友好度和信任度
  4. 成功解决The scripts freeze_graph.exe, saved_model_cli.exe, tensorboard.exe, tflite_convert.exe, toco.exe
  5. html去除分页符,Word如何取消分页符
  6. [js] innerHTML与outerHTML有什么区别?
  7. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 6丨统计各专业学生人数【难度中等】
  8. imx226_相机选型器
  9. 分区表理论解析(下):SQL Server 2k52k8系列(二)
  10. drupal ajax json异步调用
  11. linux文件夹怎么看md5,怎么看md5
  12. plc通讯的握手信号_PLC工程师教你:从原理搞懂RS485串口通讯
  13. orbslam2稠密版建图
  14. 【第十届泰迪杯B题电力负荷预测代码】
  15. 记录一个可以word,xls,PDF互转思维导图的工具
  16. PS长图快速切片_【干货】Photoshop(PS)零基础教学(界面篇)
  17. 【ionic框架bug】slideBox在使用model或pop后width变为0的解决方案
  18. mysql localhost值_jdbc:mysql://localhost:3306/mysql这句话中localhost具体指什么的localhost?能修改么?在哪里配置的?...
  19. 基于Java毕业设计大学生校园兼职系统源码+系统+mysql+lw文档+部署软件
  20. jooq 执行sql_jOOQ星期二:Markus Winand执行现代SQL任务

热门文章

  1. [原创]android studio升级无法打开 闪退修复大法思路
  2. 如何警惕网络钓鱼新花样—“刷钻、刷信用”
  3. “高歌上市”,瑞幸靠的是什么?
  4. 人生哲理名言100句
  5. 关于手机端微信二维码无法识别的问题
  6. AI强力来袭,未来应用程序开发的7种趋势
  7. Web实战:如何进行视频截图
  8. 逆变器孤岛检测及其测试方法
  9. JavaSE复习之十五 高级特性:数据库及数据库连接 补充(1)
  10. blob没权限 ie_js使用Blob对象下载兼容ie