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

2023-11-10 11:30

本文主要是介绍直接拿来用!Facebook移动开源项目大合集,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

时间:2014-04-22 15:37 作者:唐小引

随着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主页

6. Conceal

Conceal是一套用于Android平台上进行文件加密和鉴权的Java API,专为速度设计,小巧而高速。它使用了OpenSSL算法的子集和一些预先定义的选项,能够让库保持在较小的体积。通过它,开发者可以实现对手机、平板电脑SD卡中的数据以及大型文件进行加密和存储。

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

7. Origami

在界面和交互设计上颇让人惊喜的Paper让Facebook的大量开源工具从幕后走向了台前,Origami即为其中之一。这个被盛赞为“交互神器”的设计师新宠,是Facebook设计团队花费了9个月时间开发的一款基于Quartz Composer的插件,能够让设计师无需编程,快速构建移动应用交互原型。

Origami为设计师提供了开关、滚动、弹性动画等一系列自定义控件,并对Quartz Composer进行了改善,比如支持Retina显示器、重新设计工具栏图标等,以帮助设计师更为轻便地实现应用原型交互。

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

8. Bolts(iOS / Android)

Bolts是一个面向iOS和Android的底层库集合,分别为Bolts-iOS和Bolts-Android,由Facebook和Parse共同设计完成,于2014年1月基于BSD许可协议开源,其所有源码均托管到GitHub上。Bolts能够让移动应用开发变得更加简单,其组件与Parse及Facebook服务完全无关,因此,开发者无需拥有Parse或Facebook开发者账户即可直接使用。

相关链接:Bolts的Github托管地址、mobilehub主页

9. Facebook SDK(iOS / Android)

Facebook SDK for iOS(Android)是Facebook官方为iOS(Android)平台提供的Facebook API的SDK,允许开发者将Facebook集成到所开发的iOS(Android)应用中。

相关链接:Facebook SDK的GitHub托管地址(iOS / Android)、mobilehub主页(iOS / Android)

10. fishhook

最后,再来介绍一款专门用于iOS安全攻防的开源库。fishhook是Facebook推出的一款能够直接在iOS模拟器及设备上动态修改链接Mach-O符号表的工具。fishhook通过改变间接符号表的偏移量,提供一个假的nlist结构体,从而达到hook的目的,其功能很类似于在OS X上使用DYLD_INTERPOSE。

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

本文为CSDN原创文章,未经允许不得转载,如需转载请联系market#csdn.net(#换成@)

转载于:https://www.cnblogs.com/qingchen1984/p/5051543.html

这篇关于直接拿来用!Facebook移动开源项目大合集的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/382389

相关文章

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于

SpringBoot项目使用MDC给日志增加唯一标识的实现步骤

《SpringBoot项目使用MDC给日志增加唯一标识的实现步骤》本文介绍了如何在SpringBoot项目中使用MDC(MappedDiagnosticContext)为日志增加唯一标识,以便于日... 目录【Java】SpringBoot项目使用MDC给日志增加唯一标识,方便日志追踪1.日志效果2.实现步

Qt把文件夹从A移动到B的实现示例

《Qt把文件夹从A移动到B的实现示例》本文主要介绍了Qt把文件夹从A移动到B的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录如何移动一个文件? 如何移动文件夹(包含里面的全部内容):如何删除文件夹:QT 文件复制,移动(

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4

SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法

《SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法》本文主要介绍了SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录方法1:更改IDE配置方法2:在Eclipse中清理项目方法3:使用Maven命令行在开发Sprin

无需邀请码!Manus复刻开源版OpenManus下载安装与体验

《无需邀请码!Manus复刻开源版OpenManus下载安装与体验》Manus的完美复刻开源版OpenManus安装与体验,无需邀请码,手把手教你如何在本地安装与配置Manus的开源版OpenManu... Manus是什么?Manus 是 Monica 团队推出的全球首款通用型 AI Agent。Man

Nginx实现高并发的项目实践

《Nginx实现高并发的项目实践》本文主要介绍了Nginx实现高并发的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录使用最新稳定版本的Nginx合理配置工作进程(workers)配置工作进程连接数(worker_co