<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          iOS開發(fā)有哪些方向可以探索

          共 1555字,需瀏覽 4分鐘

           ·

          2021-09-05 23:09

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

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

          界面邏輯

          • 最基礎的界面開發(fā),各種UI組件的使用。如何實現(xiàn)微信的主要界面,實現(xiàn)微博的主要界面。
          • UITableView的使用、UICollectionView的使用。IGListKit的使用,ComponentKit的使用和原理。
          • 異步UI渲染。Texture、YYLabel的原理。
          • 動態(tài)化:如何實現(xiàn)微博的feed流,如何實現(xiàn)美團首頁的feed流。這些feed流通常是一個一個卡片組成,卡片是通過json等格式數(shù)據(jù)動態(tài)生成的界面。動態(tài)化如何結(jié)合異步UI渲染,提升加載性能等。
          • SwiftUI開發(fā)界面。跨蘋果平臺的界面開發(fā)。如何與UIKit和AppKit交互。
          • 多線程開發(fā)

          動畫

          • 基礎的動畫實現(xiàn)。
          • CoreAnimation的使用。
          • 轉(zhuǎn)場動畫,常用哪些,有什么坑。這里寫不好,會造成比較奇怪的crash等。
          • SwiftUI的動畫。

          架構(gòu)

          • 組件化
          • 具體業(yè)務場景的架構(gòu)
          • CocoaPods的使用和原理
          • 動態(tài)庫的使用
          • DI框架

          音視頻

          • 音視頻開發(fā)
          • AVFoundation
          • opengl/metal

          偏底層

          • 書 http://newosxbook.com/index.php 的 Volume I
          • OC Runtime:如何調(diào)試oc runtime
          • Swizzle、Aspect
          • fishhook
          • libffi
          • JSPatch原理,WasmPatch原理
          • Swift與Runtime相關(guān)的部分
          • dyld
          • MachO
          • 代碼覆蓋率
          • MainThreadChecker的實現(xiàn)
          • 調(diào)試:lldb

          性能和穩(wěn)定性

          • 啟動耗時:如何監(jiān)控,如何優(yōu)化。網(wǎng)上有大量的文章。
          • 卡頓:如何監(jiān)控,如何優(yōu)化。
          • FPS:如何監(jiān)控,如何優(yōu)化。
          • 存儲:如何監(jiān)控,如何優(yōu)化。
          • 磁盤:如何監(jiān)控,如何優(yōu)化。
          • 耗電:如何監(jiān)控,如何優(yōu)化。
          • GPU:如何監(jiān)控,如何優(yōu)化。
          • Crash:Crash原理,學習KSCrash源碼。
          • WatchDog:如何監(jiān)控,如何優(yōu)化。
          • OOM(Abort):如何監(jiān)控。如何優(yōu)化。
          • Instruments工具使用:TimeProfiler的使用,Allocations等工具的使用。

          逆向工程

          • 基礎的逆向流程熟悉。
          • 怎么砸殼,砸殼原理。frida-ios-dump的使用,bagbak的使用。
          • 匯編:主要是arm64
          • 工具:IDA和Hopper的使用
          • 工具:frida的使用,Grapefruit的使用
          • 工具:Messier的使用。
          • 怎么破解一個iOS/macOS App

          編譯

          • Xcode編譯過程,ipa產(chǎn)生過程
          • MonkeyDev原理
          • clang
          • lldb
          • ld64 鏈接器理解
          • LLVM 理解
          • LLVM Pass的開發(fā)
          • LLVM 插樁
          • LLVM bitcode的理解

          DevOps

          • 前端開發(fā):vue和react的基礎使用,前端UI庫的基礎使用
          • ruby/python/node/shell的腳步基礎使用
          • 某種faas系統(tǒng)的使用

          數(shù)據(jù)

          • 埋點的完整實現(xiàn)
          • AB測試、AA測試
          • 如何評價性能好壞
          • 最基礎的分位數(shù)的概念

          越獄

          • 如何越獄,書 http://newosxbook.com/index.php 的 Volume III

          端智能

          • CoreML
          • MNN
          • TF Lite

          通用素質(zhì)

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

          其他

          等等這次寫文章沒想到的方向,后續(xù)再補充。

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


          瀏覽 110
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  影音先锋成人资源网站 | 吖v在线观看 | 亚洲AT视频 | 超碰最新进入 | 中文字墓aV |