Is the Facebook app built using a mobile developme

2019-04-10 06:47发布

问题:

I've found numerous sources that cite the Facebook app as an example of a Hybrid App.

I understand the term Hybrid App is broadly defined as any smartphone app that wraps a WebView in a native application.

There are mobile phone development frameworks (PhoneGap, Appcelerator, etc) that enable developers to build apps using their existing web dev skills (HTML5, Javascript, CSS) while providing access to core phone features (camera, address book, etc).

Therefore, since Facebook is a hybrid app that accesses the phone's core features like Push Notifications and camera I'm curious:

Is the Facebook app built using a mobile development framework?

回答1:

Your broad definition of a hybrid app might be a little too broad. An entire app running in a webview is a sufficient but not necessary condition for a hybrid app.

You might imagine this as a spectrum:

Pure native      Facebook      Appcelerator    PhoneGap     HTML5
     |---------------|--------------|-------------|-----------|

PhoneGap apps, for example, are as you mentioned: "apps that wrap a WebView in a native application." However, Appcelerator apps are also hybrid apps, yet they do not necessarily need to contain a webview component. They are hybrid because their UI are native, yet parts of their logic runs on Javascript.

Facebook is definitely not built in PhoneGap. Creating its sliding menu in HTML5 without any performance hitches is close to impossible with current webviews. There are telltale signs that Facebook is not built in Appcelerator either. In my experience, Appcelerator apps tend to have huge file sizes because of the Titanium libraries that are included. Facebook should be a lot bigger than its current size if it were built in Appcelerator.

Facebook has the resources to build its own native apps, so it doesn't require a framework for the usual reasons (development speed, ease of coding).

Lastly, and perhaps the best reason I would say Facebook isn't built using a (publicly available) framework is that if it were, that framework would be either 1) happily announcing it to the world, or 2) bought over by Facebook.



回答2:

You probably won't get this info directly from Facebook since it is most likely a bit of a trade secret for them exactly how they do their implementation. But from my "understanding" most of facebook technology is homegrown so I doubt they use any frameworks like Phonegap. It is most likely just an html5 webview embedded into a native app.



回答3:

According to these recent articles (September 2012) from Forbes and Mashable, Facebook has recently replaced their mobile HTML5 hybrid app with a native version.

Zuckerberg is quoted as saying "the biggest mistake we made as a company was betting too much on HTML5 as opposed to native."

I guess for FB it is worth the investment in resources to build and maintain code bases for iOS, Android, etc in order to offer the closer to the metal performance native apps provide.



回答4:

Facebook uses a forked version of Apahce Cordova, which is the engine behind PhoneGap. You won't find much information about it, but it is referenced here: http://phonegap.com/2012/03/19/phonegap-cordova-and-what%E2%80%99s-in-a-name/

"Many distributions of Apache Cordova exist today and this is something we encourage wholeheartedly. For example, Salesforce and Facebook currently have customized versions for their SDKs and our work at Apache is focusing on enabling this use case (and beyond)."