淺談iOS工程師的成長(zhǎng)與進(jìn)階

iOS高級(jí)工程師是如何進(jìn)階的

說(shuō)實(shí)話這個(gè)話題說(shuō)的有點(diǎn)大了,其實(shí)我有時(shí)候也是非常的迷茫的,工作忙的時(shí)候還能跟著工作的節(jié)奏走,閑下來(lái)時(shí)間一長(zhǎng)就有點(diǎn)迷茫,不知做什么。這當(dāng)然是非常恐怖的了,所以現(xiàn)在在迷茫過(guò)、在不知所措過(guò)之后,想想還是應(yīng)該寫(xiě)寫(xiě)文章屢屢思路再上路,希望自己能養(yǎng)成好的習(xí)慣堅(jiān)持下去。

首先工作過(guò)兩年的工程師,只會(huì)搭建View、使用第三方類庫(kù),真的不能稱作一個(gè)合格的iOS開(kāi)發(fā)工程師,下面我從幾個(gè)方面來(lái)說(shuō)一下需要有什么樣的提高

  • ** iOS高級(jí)工程師是如何進(jìn)階的**
    • OC部分
    • UI部分
    • 還有一些大的功能點(diǎn)
    • 其他專業(yè)化的方向
    • 項(xiàng)目安全優(yōu)化等
    • 知識(shí)體系要持續(xù)更新

OC部分

  • 既然做了兩年的開(kāi)發(fā)了,對(duì)objc有足夠的了解嗎?objc和c的區(qū)別是什么,它是如何基于c來(lái)進(jìn)行封裝的?下面代碼是什么意思?
typedef __attribute__((NSObject))CGGradientRef GradientObject;

@property(nonatomic,strong)GradientObject storedGradient;
  • objc的內(nèi)存管理真的掌握清楚了嗎?為什么對(duì)象用指針來(lái)操作?對(duì)象需要內(nèi)存管理而基本數(shù)據(jù)類型不用呢?它們?cè)趦?nèi)存中又是如何存儲(chǔ)呢的?objc里面的自動(dòng)釋放池又是如何創(chuàng)建和管理的呢?
  • protocol、category、extension和delegate這類的東西應(yīng)該是手到擒來(lái)才是,你是不是已經(jīng)徹底掌握了?notification,Userdefault和簡(jiǎn)單的文件存儲(chǔ)是不是都很熟悉呢?
  • 多線程網(wǎng)絡(luò)的知識(shí)點(diǎn)掌握的是否扎實(shí)?https等各種網(wǎng)絡(luò)加密的知識(shí)是否夠了解?能自己搭建服務(wù)器嗎?有沒(méi)有使用Charles抓過(guò)其他app的網(wǎng)絡(luò)包進(jìn)行分析過(guò)呢?
  • runtime黑魔法有過(guò)了解嗎?它的消息機(jī)制又是如何做的呢,能在開(kāi)發(fā)中做一些什么高級(jí)的事情呢?
  • 程序啟動(dòng)過(guò)程,為什么能一直運(yùn)行?runloop又是怎樣的?
  • 代碼的封裝性是不是足夠好呢?有沒(méi)有足夠優(yōu)雅、后續(xù)維護(hù)容易嗎?各種設(shè)計(jì)模式使用的如何?

UI部分

  • 既然寫(xiě)了兩年的UI,那么能快速仿造市面上這些主流app的UI嗎?使用過(guò)Reveal去分析過(guò)微信、豆瓣、網(wǎng)易云音樂(lè)、QQ、淘寶、支付寶等應(yīng)用的UI嗎?復(fù)制一個(gè)類似的你需要多長(zhǎng)時(shí)間呢?有么有自己的一套UI框架能快速完成一個(gè)app的呢?
  • UI研究稍微深一點(diǎn),比如側(cè)滑菜單這種要如何實(shí)現(xiàn),類似餓了么的兩級(jí)聯(lián)動(dòng)菜單呢?如何你要實(shí)現(xiàn)應(yīng)該要了解UIView和UIViewController,UIViewController和UINavigationController的關(guān)系了吧?我勒個(gè)草,UIView一堆方法,UIViewController一堆方法,到底都是干嘛的???你難道不好奇嗎?這塊知識(shí)點(diǎn)一直是你的盲區(qū),你能忍?我忍不了!
  • UIView往深了看、下面還有CALayer,你研究過(guò)沒(méi)?為什么修改CAlayer的某些property默認(rèn)會(huì)有個(gè)動(dòng)畫(huà)產(chǎn)生呢?
  • 那么Animation、UIKit Dynamics、Drawing、Graphics這些隨便拎出來(lái)一個(gè),夠你研究一陣子了吧 ?你看看比如網(wǎng)易新聞,在新聞詳情頁(yè)面上拉,回到新聞列表頁(yè)面這個(gè)動(dòng)畫(huà)做的出來(lái)嗎?你看看QQ在電話通信頁(yè)面,點(diǎn)擊右下角縮放圖標(biāo),縮放成一個(gè)頭像的這種動(dòng)畫(huà)你會(huì)做不?

還有一些大的功能點(diǎn)

  • 既然用了兩年三方類庫(kù),那么比如圖片緩存之類,你看過(guò)源代碼嗎?如果你自己來(lái)實(shí)現(xiàn)的話,有哪些Caching Algorithms?該怎么取舍?各種常用的第三方類庫(kù)你研究過(guò)原理沒(méi)?
  • 你的app在和服務(wù)器交流數(shù)據(jù)的過(guò)程后中安全性怎么樣?你是不是要研究一下加解密?http理解的夠清楚嗎?有沒(méi)有想過(guò)自己來(lái)寫(xiě)接口?或者更甚一些,自己來(lái)寫(xiě)一個(gè)簡(jiǎn)易的http服務(wù)器?接口部分甚至用CGI來(lái)實(shí)現(xiàn)也可以啊 !
  • 要寫(xiě)服務(wù)器,那應(yīng)該要了解一下網(wǎng)絡(luò)部分吧?TCP/IP 協(xié)議得熟悉吧,然后Wireshark各種抓包得會(huì)吧?
  • 網(wǎng)絡(luò)這塊順帶過(guò)來(lái)之后,即時(shí)通信類的app采用的什么技術(shù)?選xmpp還是mqtt還是自己寫(xiě)?正好可以順勢(shì)了解一下吧?
  • iOS SDK里面的各種API你掌握到了什么程度?這些功能模塊排除地圖、通訊錄這種,說(shuō)些高級(jí)的比如CloudKit、Extensions、AirDrop、PassKit?覺(jué)得這些模塊在自家公司的項(xiàng)目中壓根沒(méi)有用過(guò)?可是看看你手邊的app!

其他專業(yè)化的方向

  • 音視頻處理做過(guò)嗎?此類諸如豆瓣FM、喜馬拉雅、蝦米音樂(lè)、QPlayer、秒拍視頻這類的app你去研究過(guò)他們嗎?還有VoIP這類的,你掌握到什么程度了?
  • 游戲開(kāi)發(fā)方向有沒(méi)有興趣?自己有沒(méi)有去研究過(guò)呢?(反正這個(gè)我是真的沒(méi)有╮(╯_╰)╭)

項(xiàng)目安全優(yōu)化等

  • 項(xiàng)目中寫(xiě)單元測(cè)試嗎?UI Automation自動(dòng)化測(cè)試做的怎么樣?持續(xù)集成平臺(tái)諸如Jenkins等會(huì)用嗎?
  • App的各種性能優(yōu)化、crash的統(tǒng)計(jì)分析等等你做了沒(méi)?
  • App本地?cái)?shù)據(jù)存儲(chǔ)夠安全嗎?你對(duì)逆向了解多少,敏感代碼是不是做了代碼混淆呢?

知識(shí)體系要持續(xù)更新

  • 官方的文檔、國(guó)外的相關(guān)書(shū)籍采用的語(yǔ)言都是Swift,難道你不準(zhǔn)備學(xué)學(xué)?除了native的,現(xiàn)在的HTML5也很火啊 ,難道你不準(zhǔn)備學(xué)學(xué)?
  • 英文練習(xí)的怎么樣了,官方所有的開(kāi)發(fā)者文檔以及歷年的WWDC視頻都看完了?這么多書(shū),這么多大牛的技術(shù)博客,難道你從中一無(wú)所獲?

最后附上一張iOS知識(shí)框架圖

47d19c496c9965288fd66c0a4f4172e4_r.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Swift版本點(diǎn)擊這里歡迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh閱讀 25,990評(píng)論 7 249
  • 人很苦,也很累,有時(shí)候說(shuō)不出無(wú)奈,有時(shí)候看不透人生,人生沒(méi)有下輩子,對(duì)的人,對(duì)的事,對(duì)自己好,未必別人也好??吹拈_(kāi)...
    Mr__糖先生閱讀 1,217評(píng)論 0 3
  • 今天發(fā)現(xiàn)自己一直不注意的問(wèn)題,不大愛(ài)說(shuō)話的人,喜歡默契。默契的確很好,好朋友,戀人之間都需要有默契,一個(gè)眼神一個(gè)動(dòng)...
    土匪園閱讀 149評(píng)論 0 0
  • 從來(lái)遇不到你,所以以后,每天都要把自己畫(huà)的美美的,如果燒一柱香可以與你相遇,燒兩柱香可以與你相識(shí),燒三柱香可以與你...
    糖二傻子閱讀 305評(píng)論 0 0

友情鏈接更多精彩內(nèi)容