Search code examples
facebookcordovapush-notificationappceleratorhybrid

Is the Facebook app built using a mobile development framework like PhoneGap or Appcelerator?


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?


Solution

  • 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.