close

這篇文章是 《為什麼最近iOS開發崗位那麼多(第一篇)》的第二篇,標題不一樣哈。這篇文章列舉一下作為iOS開發者,有哪些方向可以去探索、學習和應用。

首先聲明下,這篇文章肯定整理的不完整。

界面邏輯
最基礎的界面開發,各種UI組件的使用。如何實現微信的主要界面,實現微博的主要界面。
UITableView的使用、UICollectionView的使用。IGListKit的使用,ComponentKit的使用和原理。
異步UI渲染。Texture、YYLabel的原理。
動態化:如何實現微博的feed流,如何實現美團首頁的feed流。這些feed流通常是一個一個卡片組成,卡片是通過json等格式數據動態生成的界面。動態化如何結合異步UI渲染,提升加載性能等。
SwiftUI開發界面。跨蘋果平台的界面開發。如何與UIKit和AppKit交互。
多線程開發
動畫
基礎的動畫實現。
CoreAnimation的使用。
轉場動畫,常用哪些,有什麼坑。這裡寫不好,會造成比較奇怪的crash等。
SwiftUI的動畫。
架構
組件化
具體業務場景的架構
CocoaPods的使用和原理
動態庫的使用
DI框架
音視頻
音視頻開發
AVFoundation
opengl/metal
偏底層
書 http://newosxbook.com/index.php 的 Volume I
OC Runtime:如何調試oc runtime
Swizzle、Aspect
fishhook
libffi
JSPatch原理,WasmPatch原理
Swift與Runtime相關的部分
dyld
MachO
代碼覆蓋率
MainThreadChecker的實現
調試:lldb
性能和穩定性
啟動耗時:如何監控,如何優化。網上有大量的文章。
卡頓:如何監控,如何優化。
FPS:如何監控,如何優化。
存儲:如何監控,如何優化。
磁盤:如何監控,如何優化。
耗電:如何監控,如何優化。
GPU:如何監控,如何優化。
Crash:Crash原理,學習KSCrash源碼。
WatchDog:如何監控,如何優化。
OOM(Abort):如何監控。如何優化。
Instruments工具使用:TimeProfiler的使用,Allocations等工具的使用。
逆向工程
基礎的逆向流程熟悉。
怎麼砸殼,砸殼原理。frida-ios-dump的使用,bagbak的使用。
匯編:主要是arm64
工具:IDA和Hopper的使用
工具:frida的使用,Grapefruit的使用
工具:Messier的使用。
怎麼破解一個iOS/macOS App
編譯
Xcode編譯過程,ipa產生過程
MonkeyDev原理
clang
lldb
ld64 鏈接器理解
LLVM 理解
LLVM Pass的開發
LLVM 插樁
LLVM bitcode的理解
DevOps
前端開發:vue和react的基礎使用,前端UI庫的基礎使用
ruby/python/node/shell的腳步基礎使用
某種faas系統的使用
數據
埋點的完整實現
AB測試、AA測試
如何評價性能好壞
最基礎的分位數的概念
越獄
如何越獄,書 http://newosxbook.com/index.php 的 Volume III
端智能
CoreML
MNN
TF Lite
通用素質

上文都是各種知識點、或者研究學習方向,但在工作中,僅僅有技術是不夠的,還需要一些軟技能。後面的文章我們詳細聊聊。

其他

等等這次寫文章沒想到的方向,後續再補充。

如果你有補充,歡迎到群里來指點。

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()