iOS進(jìn)階任務(wù)

Q: 我從事 iOS 兩年了,感覺只會(huì)搭建view,用第三方庫,還有些機(jī)械代碼?真的迷茫了。想進(jìn)階,具體從什么大點(diǎn)入手呢?

A: 說實(shí)話,兩年時(shí)間只會(huì)搭建view、使用第三方類庫,真的不能稱為一個(gè)合格的iOS開發(fā)工程師!

1 先說OC部分

既然做了兩年了,對(duì)Objective-C足夠了解嗎?OC是如何基于C來進(jìn)行的封裝?解釋一下這兩行代碼啥意思?

typedef __attribute__((NSObject)) CGGradientRef GradientObject;

@property (nonatomic, strong) GradientObject storedGradient;

protocol、category這樣的東西應(yīng)該要手到擒來才是?多線程部分的知識(shí)點(diǎn)掌握是否扎實(shí)?runtime這種黑魔法研究過沒?代碼足夠優(yōu)雅、后續(xù)維護(hù)容易嗎?各種設(shè)計(jì)模式也得會(huì)吧?

2 再說UI部分

既然寫了兩年的view,那么能快速仿造市面上這些主流App的UI嗎?使用Reveal分析過微信、豆瓣、網(wǎng)易新聞、知乎、QQ、蘇寧、淘寶、支付寶的UI嗎?使用Charles去抓過他們的接口嗎?

UI研究稍微深一點(diǎn),比如側(cè)滑菜單這種要怎么實(shí)現(xiàn)?如果你要做實(shí)現(xiàn)應(yīng)該要了解UIView和UIViewController,UIViewController和UINavigationController的關(guān)系了吧?我嘞個(gè)草,UIView一堆方法,UIViewController一堆方法,到底都是干嘛的???你難道不好奇?這塊知識(shí)點(diǎn)一直是你的盲區(qū),你能忍?我忍不了!

UIView再往深了看,下面還有CALayer,你研究過沒?為什么修改CALayer的某些property默認(rèn)會(huì)有個(gè)動(dòng)畫產(chǎn)生呢?

那么Animation、UIKit、Dynamics、Drawing、Graphics這些隨便拎出來一個(gè),夠你研究一陣了吧?你看看比如網(wǎng)易新聞,在新聞詳情頁面上拉,回到新聞列表頁面的這個(gè)動(dòng)畫做的出來嗎?你看看QQ在電話通信頁面,點(diǎn)擊右下角縮放圖標(biāo),縮放成一個(gè)頭像的這種動(dòng)畫,你會(huì)做不?

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

既然用了兩年第三方類庫,那么比如圖片緩存這類,看過源碼實(shí)現(xiàn)沒?如果自己來實(shí)現(xiàn)的話,有哪些Caching Algorithms?該怎么取舍?各種常用的第三方類庫你研究過原理沒?

你的App在和服務(wù)器交流數(shù)據(jù)的過程中安全性怎么樣?你是不是要研究一下加解密?HTTP理解的夠清楚嗎?想沒想過自己來寫接口?或者更甚至一些自己來寫個(gè)簡易的HTTP服務(wù)器?接口部分甚至用CGI來實(shí)現(xiàn)也可以啊!

要寫服務(wù)器,那應(yīng)該要了解一下網(wǎng)絡(luò)部分吧?TCP/IP 協(xié)議得熟悉吧?然后Wireshark各種抓包得會(huì)吧?

網(wǎng)絡(luò)這塊順帶過來之后,即時(shí)聊天類的App采用的什么技術(shù)?選 xmpp 還是 mqtt 還是自己寫?正好可以順勢了解一下吧!

iOS SDK里面的各種API你掌握到了什么程度?這些功能模塊排除地圖、通訊錄這種,說些高級(jí)的比如CloudKit、Extensions、TextKit、AirDrop、PassKit?覺得這些模塊在自家公司的項(xiàng)目中壓根沒用過?可是看看你手邊的App!

4 其它專業(yè)化的方向

視音頻處理做過嗎?此類諸如豆瓣FM、蝦米音樂、喜馬拉雅、QPlayer這類的App你去研究過他們嗎?還有VoIP這類的,我實(shí)習(xí)的時(shí)候做過這種╮(╯_╰)╭

游戲開發(fā)方向有沒有興趣?自己有沒有去研究過呢?(反正這個(gè)我是真沒有╮(╯_╰)╭)

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

項(xiàng)目中寫單元測試嗎?UI Automation 自動(dòng)化測試做的怎么樣?持續(xù)集成平臺(tái)諸如Jenkins等會(huì)用嗎?

App的各種性能優(yōu)化、Crash的統(tǒng)計(jì)分析等等你做了沒?

App本地?cái)?shù)據(jù)儲(chǔ)存夠安全嗎?你對(duì)逆向了解多少?敏感部分是否做了代碼混淆?

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

官方的文檔、國外的相關(guān)書籍采用的語言都是Swift,難道你不準(zhǔn)備學(xué)學(xué)?除了native的,現(xiàn)在的HTML5也很火啊,難道不準(zhǔn)備學(xué)?

英文練習(xí)的怎么樣了?官方所有的開發(fā)者文檔以及歷年的WWDC視頻看完了?這么多書,這么多大牛的博客,你難道從中一無所獲?

補(bǔ)充一個(gè)非常重要的進(jìn)階知識(shí)板塊:APP架構(gòu)設(shè)計(jì)

MVC 你就耳熟能詳了,MVVM 你不打算了解了解嗎?

-----------------上面的是別人,下面的是我的補(bǔ)充------------------------------

1)CoreData的多線程 了解沒? ?CoreData 的不同版本的數(shù)據(jù)遷移怎么做?

2)runtime 如何使用?runtime的原理,用在項(xiàng)目中.

3)runloop 的理解,項(xiàng)目中如何使用

4)js與oc 的交互會(huì)不會(huì)?

5)GCD ,NSThread ,NSOperation 能不能滔滔不絕的講出來?

6)會(huì)不會(huì)寫插件 ?

7)block 理解是否深入?

8)動(dòng)畫訂單制作是否清楚,并且用在項(xiàng)目中

9)keyChain 鑰匙串存儲(chǔ)

10)apple pay,3Dtouch 是否學(xué)習(xí)下?

11)stackView 的使用?

12)網(wǎng)絡(luò)加密,

13)推送的深入理解

14)pop 動(dòng)畫框架的學(xué)習(xí)

15)reactiveCocoa 使用

16)逆向工程,反編譯.

17)內(nèi)存管理詳細(xì)了解

18)app 瘦身技術(shù)

19)cocoapods 使用

20 )github 項(xiàng)目

21)插件制作

22 打包.a ?和framwork

我覺得寫得還好,原文在這?

最后編輯于
?著作權(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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,765評(píng)論 25 709
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,052評(píng)論 4 61
  • 處于產(chǎn)業(yè)鏈最底層的養(yǎng)殖戶們,依然得靠天吃飯。一旦政策或市場有風(fēng)吹草動(dòng),都將會(huì)受到最直接的影響?!斑@兩年養(yǎng)豬是賺到錢...
    苗苗生活會(huì)館閱讀 658評(píng)論 0 0
  • 關(guān)于【騷年】;百度譯詞少年,在古漢語【楚辭·離騷】中-騷釋為;愁也。 但在阿婆眼里釋為;按奈不住平靜燥動(dòng)的年齡。是...
    有空想想閱讀 294評(píng)論 0 0
  • 我是高中剛畢業(yè)的學(xué)生,我在想要不要明天就辭去,形體累都是小事,心累才是真的,別人問我打工什么感悟,我說掙錢不容易,...
    顏墨一閱讀 325評(píng)論 0 0

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