iOS 高級工程師需要知道的6大技術庫,這些你都掌握了嗎?

前言:

一名合格的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去抓過他們的接口嗎?

作爲一個開發者,有一個學習的氛圍跟一個交流圈子特別重要這是一個我的iOS交流羣:638302184,不管你是小白還是大牛歡迎入駐 ,分享BAT,阿里面試題、面試經驗,討論技術, 大家一起交流學習成長!

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視頻看完了?這麼多書,這麼多大牛的博客,你難道從中一無所獲?

以上是技術方面,你還需要時間學習研究,積累經驗的。下面我們聊一下,一名優秀的工程師,在心態和思維上,會怎麼做呢?

重複而低效的工作留給工具做

將重複而低效的任務,讓工具做,將重複任務自動化,能夠極大地提高效率,節約時間,比如,使用CocoaPods。

搜索,思考,閱讀,動手嘗試,改進優化,總結知識

一些優秀的 iOS 工程師並沒有比你我聰明,跟我們一樣只是普通人,但他們在上面這些事情上不懶惰,積極思考、嘗試、總結,在同樣的條件下收穫多一點點,日積月累,於是他們變得優秀。而且這種積累所達到的層次,很難被人短時間追趕上,是非常具有競爭力的。

面對這些優秀的 iOS 工程師,我們經常會犯另一種懶惰的錯誤:我們總想加好友,攀交情,甚至用拉低姿態的方式,總覺得自己抱上大腿就能迅速成長,迅速變牛。

這其實是種假象,是自己不自信不獨立的表現。即使加了好友,他們能夠答疑解惑,甚至手把手教,親自幫忙解決問題又怎樣,那還是別人的東西,自己沒有任何成長。

學習與成長從來沒有捷徑,也只能靠自己!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章