直接拿来用!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主页
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移动开源项目大合集相关推荐
- Android开源项目大合集(转载的基础上添加了项目地址)
WeChat高仿微信 项目地址:https://github.com/motianhuo/wechat 高仿微信,实现功能有: 好友之间文字聊天,表情,视频通话,语音,语音电话,发送文件等. 知乎专栏 ...
- 年度盘点!必看AI顶会论文、Github高星项目大合集(附链接)
目前,国外计算机界评价学术水平主要是看在顶级学术会议上发表的论文,特别是在机器学习.计算机视觉和人工智能领域,顶级会议才是王道.本期我们盘点了2019年人工智能领域的顶会,如最核心的顶会AAAI.IJ ...
- 独家 | 年度盘点!必看AI顶会论文、Github高星项目大合集(附链接)
目前,国外计算机界评价学术水平主要是看在顶级学术会议上发表的论文,特别是在机器学习.计算机视觉和人工智能领域,顶级会议才是王道.本期我们盘点了2019年人工智能领域的顶会,如最核心的顶会AAAI.IJ ...
- 精选28套Java实战项目大合集
Java项目精选合集(附源码+资料+数据库)帮助你轻松搞定毕业设计! 28套精选java实战项目,无偿分享给小伙伴哟~ 为初学者而著 适合零基础的小伙伴们学习. 感兴趣的小伙伴可以点视频链接和小编一起 ...
- 13 个优秀的 Vue 开源项目及合集推荐
关注不迷路 Vue 结合了 React 和 Angular 的优点,并且有着团结.活跃且庞大的社区,可以帮助解决开发中遇到的问题.开源社区不断提出解决问题的新方法.工具和库的数量也贡献量不断的增加. ...
- 26套Java实战项目大合集
最新最全的JAVA项目合集来啦,看完这26套毕设不再发愁 最近UP整理了一些Java项目,从初级练手项目到企业级电商项目,全部配备源码及笔记,如果你能全部吃透,直接成神,各个大厂都为你打开大门! 大家 ...
- github开源项目大集合(1)
github开源项目大集合 目前包括: Android 开源项目第一篇--个性化控件(View)篇 包括ListView.ActionBar.Menu.ViewPager.Gallery.GridV ...
- 2021年全球知名开源项目大更新
下面简单回顾 2021 年一些带来较大变化和影响的项目更新信息. PHP 8.1.0 正式发布 枚举,只读属性,First-class 可调用语法,新的初始化器,纯交集类型,Never 返回类型,Fi ...
- 高级信息系统项目管理(高项 软考)原创论文项目背景合集
以下为原创的高项论文项目背景合集5篇,建议自己以此为基础,再多多打磨完善一下,避免雷同,同时使项目背景更加真实可信. 一.某市智慧工地系统建设项目 某市住建局智慧工地系统建设项目是在该市住建局促进建筑 ...
- 【毕设|Java项目开发合集】(附源码)
[毕设|Java项目开发合集] 14个Java项目(附源码)助你轻松搞定毕业设计! 1.新冠疫情统计系统 2.家教系统 3.进销存管理系统 4.饮食分享平台 5.宠物领养平台 6.销售评价系统 7.酒 ...
最新文章
- HTML做3D立体特效,html5 3D立体粒子波浪动画特效代码
- 计算机丢失quartz.dll什么意思,win7系统中出现缺少quartz.dll文件的修复方法
- android Integer类的toString函数的使用
- SecureCRT也能和Xshell一样批量导入主机
- ios开发跳转safari_阻止iOS Web APP中点击链接跳转到Safari 浏览器新标签页
- erlang下lists模块sort(排序)方法源码解析(二)
- scrapy 中不同页面的拼接_scrapy使用技巧总结
- 信息传输计算机服务业,信息传输软件和信息技术服务业包括哪些
- pygame-KidsCanCode系列jumpy-part6-主角挂掉重新开始
- 机器学习基石(1)--The Learning Problem
- 简单直观理解形态学中的开运算和闭运算
- (转)遇到重复的Maven项目初始配置,就要创建自己的Maven Archetype
- MVC案例之DAO层实现
- 什么软件能打开prt文件_prt文件除了UG和PROE还可以用什么软件打开?
- 什么是FDR校正,核磁共振成像中FDR校正方法有哪些?如何进行FDR校正?
- 日期对象 date.getDate() date.getDay()的区别
- 金航数码再度携手 The Open Group年度峰会
- 问题 C: 合唱队形
- lucene Lucene Spatial
- 第八章 win10+gsoap+onvif+ffmpeg
热门文章
- 哪些因素会影响工控机的正常运行?
- 数据恢复技术在计算机犯罪侦查中的应用,计算机数据恢复技术在犯罪侦查中的应用论文...
- 今日指数项目之ETL数据业务开发(需求说明)【八】
- SpringMVC---初识、Restful风格、JSON
- java三元运算符语法格式,含爱奇艺,小米,腾讯,阿里
- 煮饭的机器人作文_二年级状物作文:做饭机器人_450字
- tpo20 integrate writing
- 使用mybatis在测试类中往数据库插入数据但是表里没有数据
- Radiology:神经影像学在痴呆症中的应用
- yolov5 Coremltools