天天看點

iOS開發經驗總結,我的2019進階之路!

4G改變了生活,抓住機會的人已經在這個社會有了立足之地,馬上迎來5G的時代,你做好準備了嗎!對于即将迎來的5G時代,無疑會是音視訊的又一個高潮!那麼作為程式員的我們,應該怎麼樣去迎接它呢~~

改變帶來的不是淘汰,而是機會!

底層進階:

iOS底層進階成了當今iOS開發人員的必經之路。無論開發還是面試,iOS 進階的底層知識是作為一個iOS開發必須要掌握的知識;尤其在底層原理方向,底層源碼必須要有自己的見解。

作為一個開發者,有一個學習的氛圍跟一個交流圈子特别重要,不管你是小白還是大牛歡迎入駐 ,分享BAT,阿裡面試題、面試經驗,讨論技術, 大家一起交流學習成長!希望幫助開發者少走彎路。

runtime、runloop、KVC、KVO、多線程(GCD)、網絡層(socket)、單元測試、持續內建、 自動打包、架構模式、性能優化等等~

不管是否堅持選擇iOS開發,我個人認為了解底層是必須的,程式設計行業所謂的“一通百通”是偏向于正确的,是以我認為隻有學會了底層,才能讓我在以後有更多的方向選擇!

看源碼無聊嗎?當然很無聊!!!!

但是當我想去找回當時大學所學的安卓、前端等技能時,似乎出現了一點問題!這些看似很簡單吸收的技能,它實際上确實很簡單~

應用層的東西,實際上靠實踐和記憶很容易吸收入門,随便搭建一兩個簡單的項目就會了,但是想要去精通确很難!

也是在這個時候我慶幸,我當時沒有一個直接走向所謂“全棧”的想法,如果按照這種方式來走向全棧,那麼還有一個詞似乎會更貼切“碼農”

是以我最後會抛棄掉“廣”這個領域,而選擇“深”!

逆向開發

1、ios逆向工程指的是在軟體層面上進行逆向分析的一個過程。

如果想要達到對ios軟體較強的逆向分析能力,最好能非常熟悉ios裝置的硬體構成、ios系統的運作原理,還要具備豐富的ios開發經驗,比如:拿到一個App之後能清晰的推斷出這個App使用的技術,包括引用了那些FrameWork,那些經典的第三方代碼,以及整個App工程大緻的檔案個數等。

2、逆向工程的主要兩個作用:首先是攻破目标程式,拿到關鍵資訊,可以歸類于安全相關的逆向工程,其次是借鑒他人的程式功能來開發自己的軟體,可以歸類于開發相關的逆向工程

3、與安全相關的ios逆向工程

ios 逆向工程最突出的應用領域就是與安全相關的,比如:通過逆向一個金融App,來評定這個軟體的安全等級,安全專家通過逆向ios病毒,來找到殺毒的方法,安全公司通過逆向ios系統電話、短信功能,來建構一個手機防火牆

這個時候我相信會有很多人問:我正向開發似乎用不到!

與開發相關的ios逆向工程

開發者可以逆向系統調用,在自己的程式裡使用一些文檔中沒有提及的私有功能,還可以逆向一些經典的軟體等

a.逆向系統調用

開發者編寫的軟體能夠運作在作業系統中,提供各種各樣的功能,是因為作業系統本身已經内嵌了這些功能,軟體隻是拿來重組使用。絕大多數的App的實作都源于公開的開發文檔,而不能使用諸如鎖屏,關機等文檔中不涉及的功能,如果你的程式面向Cydia,那麼不采用非公開功能将導緻程式幾乎沒有競争力,故可以通過逆向ios系統調用,還原系統實作相應功能的代碼,并應用到自己的程式中。

b.借鑒别的軟體

逆向工程最受歡迎的應用場合就是“借鑒”他人的軟體功能。

圖形視覺

作為5G時代即将火熱的音視訊方向當然是不能丢的,那麼其實在這方面肯定不會是隻有什麼硬解碼、軟解碼這些!

OpenGL ES/Metal/SpriteKit/GPUImage等架構,内容涉及到底層圖形渲染到濾鏡處理底層實作。适用于想往音視訊、圖形圖像底層方向發展的學習。 OpenGL ES 覆寫到底層濾鏡實作以及常見工作項目場景實作,Metal 涉及到MetalShadingLangurage語言以及Metal案例實作分析。GPUImage架構包括底層源碼分析以及使用。

最後:

(不同的語言就像在同一起跑線的賽車!剛開始接觸iOS,并且從事相關工作,你隻是給自己搭建了一個普普通通的三輪車,能跑就行,而深入的學習才是為了讓你的三輪車變成法拉利,不管你會跑哪一個賽道,你隻有變成法拉利才能夠去戰勝别人,跑的比别人快!)

繼續閱讀