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,並且從事相關工作,你只是給自己搭建了一個普普通通的三輪車,能跑就行,而深入的學習纔是爲了讓你的三輪車變成法拉利,不管你會跑哪一個賽道,你只有變成法拉利才能夠去戰勝別人,跑的比別人快!)

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