4

我找到了许多 引用 Facebook 应用程序作为混合应用程序示例的资源。

我理解术语混合应用程序被广泛定义为任何将 WebView 包装在本机应用程序中的智能手机应用程序。

有一些手机开发框架(PhoneGap、Appcelerator 等)使开发人员能够使用他们现有的 Web 开发技能(HTML5、Javascript、CSS)构建应用程序,同时提供对核心手机功能(相机、地址簿等)的访问。

因此,由于 Facebook 是一个混合应用程序,它可以访问手机的核心功能,如推送通知和相机,我很好奇:

Facebook 应用程序是使用移动开发框架构建的吗?

4

4 回答 4

15

您对混合应用程序的广泛定义可能有点过于宽泛。在 webview 中运行的整个应用程序是混合应用程序的充分但非必要条件。

你可以把它想象成一个频谱:

纯原生 Facebook Appcelerator PhoneGap HTML5
     |---------------|--------------|-------------|---- --------|

例如,PhoneGap 应用程序就像您提到的那样:“将 WebView 包装在本机应用程序中的应用程序”。然而,Appcelerator 应用程序也是混合应用程序,但它们不一定需要包含 webview 组件。它们是混合的,因为它们的 UI 是原生的,但它们的部分逻辑运行在 Javascript 上。

Facebook 绝对不是在 PhoneGap 中构建的。在 HTML5 中创建没有任何性能障碍的滑动菜单对于当前的 webview 来说几乎是不可能的。有迹象表明 Facebook 也没有内置在 Appcelerator 中。根据我的经验,由于包含了 Titanium 库,Appcelerator 应用程序往往具有巨大的文件大小。如果 Facebook 是在 Appcelerator 中构建的,它应该比现在的规模大很多。

Facebook 拥有构建自己的原生应用程序的资源,因此出于通常的原因(开发速度、易于编码),它不需要框架。

最后,也许我会说 Facebook 不是使用(公开可用的)框架构建的最好理由是,如果是这样,那么该框架将要么 1)向全世界欣然宣布它,要么 2)被 Facebook 收购。

于 2012-03-24T16:40:03.860 回答
3

您可能不会直接从 Facebook 获得此信息,因为这很可能对他们来说是一个商业秘密,确切地说是他们如何执行他们的实施。但从我的“理解”来看,大部分 facebook 技术都是本土的,所以我怀疑他们是否使用了像 Phonegap 这样的框架。它很可能只是嵌入到本机应用程序中的 html5 webview。

于 2012-03-20T01:41:05.230 回答
3

根据福布斯Mashable最近的这些文章(2012 年 9 月) ,Facebook 最近用原生版本替换了他们的移动 HTML5 混合应用程序。

引用扎克伯格的话说:“作为一家公司,我们犯下的最大错误是在 HTML5 上押注太多,而不是在原生上押注太多。”

我想对于 FB 来说,为 iOS、Android 等构建和维护代码库以提供更接近原生应用程序提供的金属性能的资源投资是值得的。

于 2012-09-26T20:47:03.700 回答
2

Facebook 使用 Apahce Cordova 的分叉版本,它是 PhoneGap 背后的引擎。你不会找到太多关于它的信息,但它在这里被引用:http: //phonegap.com/2012/03/19/phonegap-cordova-and-what%E2%80%99s-in-a-name/

“现在存在许多 Apache Cordova 发行版,这是我们全心全意鼓励的事情。例如,Salesforce 和 Facebook 目前为其 SDK 定制了版本,我们在 Apache 的工作重点是启用这个用例(及其他)。”

于 2012-03-27T01:13:22.857 回答