Friday, February 22, 2013

First look at Facebook Platform

To be honest, I don't use facebook (I use twitter every day), but recently we need integration facebook to our web app for few features:
1. Facebook login
2. Facebook invite friends
3. Facebook social like button

With that, I head to for an overview of Facebook platform. And I am thrilled to see how well it is designed, built, organized and documented. Here are my takeaways to a great platform.

Developer friendly
Built for developers is very important to thrive platform ecosystem. Google is always doing in this way and appears very developer-friendly, and I believe Facebook is doing the same way after I initial overview of this developer portal. The value of "Platform" is to have 3rd party applications developed on top of it, or integrated with it. Whether it is developing app or integrating existing system with the platform, developers are the main resources to make it happen. Therefore, developer friendly is vital to a successful platform.

Well-designed API
API (application programming interface) is the interfaces between platform and integration applications. Developers always like lightweight, standard, straightforward API. REST, Open Social, Open graph etc are popular ones. Based on these standard or mature protocol, design carefully for developers, so that developers can easily understand your API design principle. Also API should be backward compatible and versioning enabled.

SDK (software development kit) brings "developer friendly" goal a step further on top of well-designed APIs. With SDK, developers can focus on business and integration efforts while using local imported SDK. It is no difference to invoke other local classes/methods/interfaces. Facebook Javascript SDK provides both FB.api (pure open graph api) and FB.ui (dialog/widget) which are really developer-friendly to give developers more flexibility.

Documentation and Tools
Most developers don't read through API documents before coding, instead they look for sample codes and try out, and reference to API user guide or SDK documentation when meet issues. Therefore well-indexed and organized documentations are most developers want. Besides documentation, developer tools are another plus to help developers to build app on top of the platform, or integrate system with the platform. We all need tools, just like we need IDE when writing/debugging codes.

Forum, FAQ, email, or phone call to support developers to get through their obstacle when they use your platforms. The platform providers know more than any one else, so don't hesitate to listen to developers and provide timely support.

This is what I resonated when I go through from Facebook. Years ago, when we started API, we didn't realize "developer friendly" and only worked on API and User reference guide. 2 years ago, when we redesign a new system, we want "developer friendly" but still could not implement all of above key items. Now, when we have the chance to develop a new platform, we definitely will move in this way.

No comments:

Post a Comment