數(shù)據(jù)
看了下自己app的友盟統(tǒng)計(jì),還有6%的iOS 8.x設(shè)備。等iOS 11出來(lái)后,再考慮放棄iOS 8.x用戶(hù)吧。
OC穩(wěn)住呀~
文章推薦(轉(zhuǎn))
最近看到Lottie項(xiàng)目,一個(gè)iOS,Android和React Native庫(kù),可以實(shí)時(shí)渲染After Effects動(dòng)畫(huà),并且允許本地app像靜態(tài)資源那樣輕松地使用動(dòng)畫(huà)。回過(guò)頭又把這篇圖片格式調(diào)研的文章看了一遍,哈。這篇文章把移動(dòng)開(kāi)發(fā)常用的幾種靜態(tài)、動(dòng)態(tài)圖片做了詳細(xì)的比較。
WKWebView
不支持NSURLProtocol
,導(dǎo)致基于UIWebView+NSURLProtocol
并做了一些深度優(yōu)化的,很難一下子就遷移到WKWebView
。WKWebView
內(nèi)部使用了NSURLProtocol
,但沒(méi)有對(duì)外開(kāi)放,不知道出于什么考慮。這篇文章以比較hack的方式讓WKWebView
支持NSURLProtocol
。
另一種Native動(dòng)態(tài)化的方案,在OC編譯器上動(dòng)手腳,將OC代碼自動(dòng)編譯成可動(dòng)態(tài)下發(fā)的JS代碼。
有些特性需要配合ios 10設(shè)備使用,比如內(nèi)存循環(huán)引用、DYLD_PRINT_STATISTICS(打印應(yīng)用預(yù)加載時(shí)間)等。
在Scheme的Environment Variables添加DYLD_PRINT_STATISTICS=Y(jié)ES,可以打印應(yīng)用預(yù)加載時(shí)間。從打印出來(lái)的日志看,dylib loading time
占用了不少時(shí)間,應(yīng)該是跟加載的系統(tǒng)庫(kù)和三方庫(kù)有關(guān)。
The loading of Apple system frameworks is highly optimized but loading your embedded frameworks can be expensive.
當(dāng)三方庫(kù)不采用Framework形式打包,加載時(shí)間是少了不少。
// 三方庫(kù)以Frameworks形式打包
Total pre-main time: 392.25 milliseconds (100.0%)
dylib loading time: 336.73 milliseconds (85.8%)
rebase/binding time: 10.88 milliseconds (2.7%)
ObjC setup time: 15.91 milliseconds (4.0%)
initializer time: 28.65 milliseconds (7.3%)
slowest intializers :
libSystem.B.dylib : 4.63 milliseconds (1.1%)
AFNetworking : 12.03 milliseconds (3.0%)
// 三方庫(kù)以.a靜態(tài)鏈接庫(kù)形式鏈接
Total pre-main time: 93.71 milliseconds (100.0%)
dylib loading time: 11.46 milliseconds (12.2%)
rebase/binding time: 27.05 milliseconds (28.8%)
ObjC setup time: 13.16 milliseconds (14.0%)
initializer time: 41.94 milliseconds (44.7%)
slowest intializers :
libSystem.B.dylib : 5.47 milliseconds (5.8%)
libBacktraceRecording.dylib : 4.48 milliseconds (4.7%)
Fanmei : 54.14 milliseconds (57.7%)
項(xiàng)目
After Effects動(dòng)畫(huà)的渲染引擎。
A library for converting Adobe AE shape based animations to a data format and playing it back on Android and iOS devices.
跟Lottie類(lèi)似,也是After Effects動(dòng)畫(huà)的渲染引擎。
A data-driven UICollectionView framework for building fast and flexible lists.
An in-app debugging and exploration tool for iOS
iOS設(shè)備調(diào)試工具,可以查看沙盒,抓包,查看視圖信息等。
仿android的meterial design風(fēng)格的控件