Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.

Share this Page URL

Introduction - Pg. xiii

Introduction When I wrote the first book on Facebook's APIs in 2008, the platform suffered from a lot of the growing pains many nascent technologies do. There was a distinct lack of documentation, the APIs were changing on an almost weekly basis, and many of the APIs seemed to grow organically, and independently of one another. Facebook had been growing astronomically for several years, and with the launch of their API platform, were positioning themselves to expand their user base even further with over 845 million monthly visitors today. With this kind of user growth, Facebook engineers had some really interesting technical problems to tackle. How do you scale a system to handle this many users? How do you enable users to interact with their information in meaningful ways? How do allow developers access to your platform in a meaningful way that does not impinge upon the privacy of Facebook users? How do you create an API that is logical for developers to use? Facebook engineers took on all of these problems, and in the case of the API Platform, rethought and re-implemented the older REST APIs in favor for the Graph API. Having worked with the older APIs, I was impressed with how well thought out the service ended up being, and the implementation of a JavaScript API really opened up a lot of possibilities for developing applications on the Facebook Platform. While Facebook was working on their platform, the first of what has become known as the HTML 5 standards was published. This standards body introduced specifications for a set of technologies that web developers had either complained that were absent from the HTML specification, and would work on the emerging mobile market. These specifications included definitions for how to work with animation (canvas), how local storage for off-line web applications would work, and included native support for audio and video components, among many other elements that web developers had been requesting for years. While these specifications were being developed, web browsers were making some real strides in not only their ability to handle the new HTML 5 specifications, but their underlying JavaScript engines took major steps to increase the performance of web-based applications. With the major performance enhancements to the various JavaScript engines in different browsers, browser-based games that did not require the installation of Adobe's Flash plugin began to be a real possibility. The emergence of a standards-based approach to browser animation and the browser's ability to handle more complex JavaScript efficiently has seen a move by developers to various HTML 5 technologies for components of their games. However, there is not currently a dominant platform to deliver these games. The success of companies like Zynga in the realm of social gaming show great promise for game developers in the realm of social gaming applications, and the Facebook platform provides game developers with an easy-to-use set of APIs to integrate in to their game. When I was approached about writing an update to the Facebook Developer's Guide, and we began the conversation about what an update to that book would look like, we quickly realized that there is a great opportunity for game apps on the Facebook platform. Much of the first book was focused at addressing showing how to use a new technology that has since been superseded by documentation and posts by Facebook engineers, and many great blog posts, I thought it xiii