说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

直接拿来用!Facebook移动开源项目大合集

HTML文档下载 WORD文档下载 PDF文档下载
移动开发生态圈日益成熟,基础的开源组件也越来越丰富,而Facebook不仅取之开源,更不断地开源其内部项目,将成果与开发者共享。本文特对Facebook在移动开发方面所推出的众多开源项目进行了系统的盘点与介绍。

随着iOS依赖管理工具CocoaPods和大量第三方开源库成熟起来,业界积累了大量的优秀开源项目。不久之前,Facebook推出了旗下移动新闻阅读应用Paper,便动用了将近100个第三方开源库,极大地简化了自己的应用开发任务。

移动开发生态圈日益完善,基础的开源组件也越来越丰富,而Facebook不仅取之开源,更不断地开源其内部项目,将成果反馈给开源社区,与开发者共享。接下来,就让我们一起来看看那些年Facebook在移动开发方面所推出的众多开源项目。

1. KVOController

KVOController是Facebook开源的一款简单安全的KVO(Key-Value Observing,键值观察,Objective-C中定义的一个通知机制)工具,用于iOS和Mac OS X应用开发中。KVOController基于Cocoa经过时间考验的KVO实现开发而成,它提供了一个简洁方便、线程安全的API。

主要特性:

  • 使用Blocks、自定义Actions或NSKeyValueObserving回调进行通知;
  • 观测者移除时无异常;
  • 控制器dealloc时移除隐式观测者;
  • 提升使用NSKeyValueObservingInitial的性能;
  • 为恢复观测者提供特殊防护的线程安全。

相关链接:KVOController的GitHub托管地址、mobilehub主页

2. Shimmer

Shimmer是一款开源的加载效果工具,能够非常简单地向应用中的任何视图添加闪闪发光的字体效果,并且不会显得突兀。Shimmer最初是Facebook于今年1月所推出的Paper的开发过程中所使用到的工具,后被Facebook基于BSD许可协议开源,支持iOS 6及其以上系统。


相关链接:Shimmer的GitHub托管地址、mobilehub主页

3. Rebound

Rebound是Facebook推出的一款Android的物理和动画库,于2013年10月在Mobile@Scale大会上正式发布,旨在解决笨重、缓慢的传统移动网络界面。Rebound基于BSD许可协议,兼容HTML5和Node.js。

  

Rebound不是一款通用物理库,但其弹簧模型在应用程序中引入了现实世界的物理,易于集成,创建的动画能够让人感觉到非常自然,可用于滚动条、切换开关、呼叫等场景下。

相关链接:Rebound官网、GitHub托管地址、mobilehub主页

4. Buck

Buck是Facebook开发的一款开源Android Build工具,基于Apache License 2.0协议发布,可以通过独立构建并行来发挥多核的性能,加速开发者的Android应用构建流程。Buck基于单一的库构建,能够以最小的资源集重建,非常适用于Android项目组织与管理。


主要特性:

  • 加速Android构建。充分发挥多核处理器的优势,并行构建独立模块。通过追踪没有变化的源文件,减少增量构建实践,最少化需要重建的资源。
  • 对于不支持开箱即用的Android Ant编译脚本,引进ad-doc构建系统。
  • 在构建系统里保持生成构建的逻辑,无需另外的系统生成构建文件。
  • 基于构建规则生成一个Intellij项目,能同时匹配本地IDE以及无头文件编译开发。
  • 支持单元测试,选用最均衡的方式获得代码覆盖率。

相关链接:Buck官网、Github托管地址、mobilehub主页

5. xctool

xctool是Facebook推出的另一款开源的应用构建工具,基于Apache License 2.0协议发布,用于取代苹果的xcodebuild,来简化iOS和Mac项目的构建和测试。xctool对于持续集成可谓大有裨益,其最大的好处就是可以直接从命令行构建和运行单元测试。


xctool在xcodebuild的基础上还添加了一些额外的功能,比如支持将构建和测试结果结构化输出;界面友好,支持ANSI彩色输出;速度更快,支持进行并行测试,使得运行速度提升2~3倍等。xctool支持Xcode 5+,并且,在使用xctool时必须安装Xcode命令行工具。

主要特性:

  • 作为Xcode.app运行相同的测试;
  • 构建输出和测试结果均为JSON格式,无需解析输出;
  • xctool只有在发现错误的时候才打印消息,而xcodebuild对每个源文件都会打印。

相关链接:xctool的GitHub托管地址mobilehub主页 

备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘