直接拿来用!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) ...

2014年4月29日 · 1 分钟 · 天边的星星

10款高效简化移动开发过程的工具

移动应用开发工具的更新换代,让开发者可以直接通过浏览器就能创建移动主题和应用,快速而又简单。而这些工具的主要特色就是,无需编写大量代码或是无需编码,它们除了让经验丰富地开发人员更快速地构造原型外,也降低了新手进入移动应用开发的壁垒。在这里,本文介绍一些能够有效简化移动开发过程的10款工具。 1. Appium Appium是一个开源、跨平台的自动化测试工具,用于测试原生、混合以及移动Web应用,支持iOS、Android和FirefoxOS平台。Appium通过使用WebDriver JSON协议,驱动iOS的UIAutomation库以及Android的UIAutomator框架 。 相关链接:Appium的GitHub托管地址、mobilehub主页 2. Mobiscroll Mobiscroll是一个用于触摸设备的日期和时间选择器,它的使用不会改变HTML5、PhoneGap以及混合应用的原生用户体验。作为一款jQuery日期插件,用户可以自定义主题样式,为自己的移动项目UI组件添色。Mobiscroll支持所有主流平台:iOS、Android、BlackBerry, Windows Phone 8以及Amazon Kindle。 ** ** 相关链接:Mobiscroll的GitHub托管地址、mobilehub主页 3. Hammer.js Hammer.js是一个多点触摸手势库,能够为网页加入Tap、Double Tap、Swipe、Hold、Pinch、Drag等多点触摸事件,免去监听底层touchstart、touchmove、touchend事件并且要写一大堆判断逻辑的痛苦。 ** ** 相关链接:Hammer.js的GitHub托管地址、mobilehub主页 4. Countly Countly是一款世界领先、实时、开源的移动分析平台,它通过收集来自手机的数据,并将这些数据通过可视化效果展示出来,分析移动应用的使用和最终用户的行为,用来有效地帮助提高所开发的产品质量。目前,Countly支持iOS以及Android平台。 ** ** 相关链接:Countly的GitHub托管地址、mobilehub主页 5. iWebinspector iWebInspector是一款免费的工具,用来调试、配置和检查iOS模拟器(iPhone或iPad)上运行的Web应用。可以检查资源,查看和修改HTML以及CSS,还可以对JavaScript代码使用断点,创建图表等,就像在桌面上使用Safari、Chrome或Firebug一样简单。 ** ** 相关链接:iWebinspector的mobilehub主页 6. Adaptive Images Adaptive Images检测访问者的屏幕尺寸,自动创建、缓存并能够重新缩放HTML内嵌图像使其能够变为最适合设备的尺寸大小。Adaptive Images结合流体图像技术,适用于响应设计。 ** ** 相关链接:Adaptive Images的GitHub托管地址、mobilehub主页 7. Mobjectify Mobjectify是简化的移动开发,无论你是想要建立简单的实体模型在不同设备上进行测试还是构建工作应用,Mobjectify为你提供工具,加快你的工作流程。它使用绑定的小工具以及jQuery Mobile,在短短几分钟内就可生成一个原型设计,而不是纸上的布局或者线框图。 ** ** 相关链接:Mobjectify的mobilehub主页 8. Ratchet Ratchet是一款免费的开源工具,主要功能是,使用简单的HTML、CSS和JS组件就能构建出移动应用程序原型。Ratchet使用简单的原因之一就是,它支持很多控件,其中包括:Bars、Lists、Buttons、Forms、Segmented controllers、Sliders、Push events等。 ** ** 相关链接:Ratchet的GitHub托管地址、mobilehub主页 9. Vinisketch 通过Vinisketch,可以使用HTML5、CSS以及JavaScript来开发出能在移动平台上原生运行的应用,并且其提供云服务或作为一个独立的应用程序。 ** ** Vinisketch特性: 可视化编辑器:使用可视化编辑器,只需拖放或自定义小部件,就可轻松设计应用程序。 多引擎:使用多引擎,可以为每一个目标设备管理自己的应用程序。 相关链接:Vinisketch的mobilehub主页 10. mAdserve mAdserve是一个采用PHP+MySQL开发,用于轻松管理和跟踪移动广告的开源移动广告服务器,支持iOS、Android、Windows Phone平台。 ** ** 相关链接:mAdserve的mobilehub主页 转载地址:http://www.csdn.net/article/2014-04-17/2819378-10-mobile-application-development-tools

2014年4月24日 · 1 分钟 · 天边的星星

Comet:基于 HTTP 长连接的“服务器推”技术

“服务器推”技术的应用 传统模式的 Web 系统以客户端发出请求、服务器端响应的方式工作。这种方式并不能满足很多现实应用的需求,譬如: 监控系统:后台硬件热插拔、LED、温度、电压发生变化; 即时通信系统:其它用户登录、发送信息; 即时报价系统:后台数据库内容发生变化; 这些应用都需要服务器能实时地将更新的信息传送到客户端,而无须客户端发出请求。“服务器推”技术在现实应用中有一些解决方案,本文将这些解决方案分为两类:一类需要在浏览器端安装插件,基于套接口传送信息,或是使用 RMI、CORBA 进行远程调用;而另一类则无须浏览器安装任何插件、基于 HTTP 长连接。 将“服务器推”应用在 Web 程序中,首先考虑的是如何在功能有限的浏览器端接收、处理信息: 客户端如何接收、处理信息,是否需要使用套接口或是使用远程调用。客户端呈现给用户的是 HTML 页面还是 Java applet 或 Flash 窗口。如果使用套接口和远程调用,怎么和 JavaScript 结合修改 HTML 的显示。 客户与服务器端通信的信息格式,采取怎样的出错处理机制。 客户端是否需要支持不同类型的浏览器如 IE、Firefox,是否需要同时支持 Windows 和 Linux 平台。 回页首 基于客户端套接口的“服务器推”技术 Flash XMLSocket 如果 Web 应用的用户接受应用只有在安装了 Flash 播放器才能正常运行, 那么使用 Flash 的 XMLSocket 也是一个可行的方案。 这种方案实现的基础是: Flash 提供了 XMLSocket 类。 JavaScript 和 Flash 的紧密结合:在 JavaScript 可以直接调用 Flash 程序提供的接口。 具体实现方法:在 HTML 页面中内嵌入一个使用了 XMLSocket 类的 Flash 程序。JavaScript 通过调用此 Flash 程序提供的套接口接口与服务器端的套接口进行通信。JavaScript 在收到服务器端以 XML 格式传送的信息后可以很容易地控制 HTML 页面的内容显示。 ...

2014年4月17日 · 4 分钟 · 天边的星星

Jolt Awards 2014: Mobile and Coding Tools

Dr. Dobbs has awarded the Jolt Award for Mobile and Coding Tools for 2014. Dr. Dobb’s Journal has recently announced the winners of the Jolt Awards for Mobile Development Tools. This award is meant to recognize the best tools for creating mobile applications. This year’s award recognizes the improvements made by cross-platform mobile development tools, noting that if “they continue to close the gap with native applications, they might well become the tool of choice for all development, save the most demanding.” ...

2014年4月11日 · 4 分钟 · 天边的星星