移动客户端开发笔记2

数据

  • iOS10 设备安装率超7成

看了下自己app的友盟统计,还有6%的iOS 8.x设备。等iOS 11出来后,再考虑放弃iOS 8.x用户吧。

  • TIOBE 2月编程语言排行榜,Swift和Objective-C语言分别排在12和19位

OC稳住呀~

文章推荐(转)

  • 移动端图片格式调研

最近看到Lottie项目,一个iOS,Android和React Native库,可以实时渲染After Effects动画,并且允许本地app像静态资源那样轻松地使用动画。回过头又把这篇图片格式调研的文章看了一遍,哈。这篇文章把移动开发常用的几种静态、动态图片做了详细的比较。

  • 让 WKWebView 支持 NSURLProtocol

WKWebView不支持NSURLProtocol,导致基于UIWebView+NSURLProtocol并做了一些深度优化的,很难一下子就迁移到WKWebViewWKWebView内部使用了NSURLProtocol,但没有对外开放,不知道出于什么考虑。这篇文章以比较hack的方式让WKWebView支持NSURLProtocol

  • DynamicCocoa:滴滴 iOS 动态化方案的诞生与起航

另一种Native动态化的方案,在OC编译器上动手脚,将OC代码自动编译成可动态下发的JS代码。

  • Xcode8带来的新特性和坑

有些特性需要配合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%) 

项目

  • Lottie

After Effects动画的渲染引擎。

  • Keyframes

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动画的渲染引擎。

  • Instagram/IGListKit

A data-driven UICollectionView framework for building fast and flexible lists.

  • Flipboard/FLEX

An in-app debugging and exploration tool for iOS

iOS设备调试工具,可以查看沙盒,抓包,查看视图信息等。

  • material-components-ios

仿android的meterial design风格的控件

你可能感兴趣的:(移动客户端开发笔记2)