移动客户端开发笔记2
数据
看了下自己app的友盟统计,还有6%的iOS 8.x设备。等iOS 11出来后,再考虑放弃iOS 8.x用户吧。
OC稳住呀~
文章推荐(转)
最近看到Lottie项目,一个iOS,Android和React Native库,可以实时渲染After Effects动画,并且允许本地app像静态资源那样轻松地使用动画。回过头又把这篇图片格式调研的文章看了一遍,哈。这篇文章把移动开发常用的几种静态、动态图片做了详细的比较。
WKWebView
不支持NSURLProtocol
,导致基于UIWebView+NSURLProtocol
并做了一些深度优化的,很难一下子就迁移到WKWebView
。WKWebView
内部使用了NSURLProtocol
,但没有对外开放,不知道出于什么考虑。这篇文章以比较hack的方式让WKWebView
支持NSURLProtocol
。
另一种Native动态化的方案,在OC编译器上动手脚,将OC代码自动编译成可动态下发的JS代码。
有些特性需要配合ios 10设备使用,比如内存循环引用、DYLD_PRINT_STATISTICS(打印应用预加载时间)等。
在Scheme的Environment Variables添加DYLD_PRINT_STATISTICS=YES,可以打印应用预加载时间。从打印出来的日志看,dylib loading time
占用了不少时间,应该是跟加载的系统库和三方库有关。
The loading of Apple system frameworks is highly optimized but loading your embedded frameworks can be expensive.
当三方库不采用Framework形式打包,加载时间是少了不少。
// 三方库以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%)
// 三方库以.a静态链接库形式链接
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%)
项目
After Effects动画的渲染引擎。
A library for converting Adobe AE shape based animations to a data format and playing it back on Android and iOS devices.
跟Lottie类似,也是After Effects动画的渲染引擎。
A data-driven UICollectionView framework for building fast and flexible lists.
An in-app debugging and exploration tool for iOS
iOS设备调试工具,可以查看沙盒,抓包,查看视图信息等。
仿android的meterial design风格的控件