Just in time for Google I/O, Facebook just posted some big news for Android developers:

At the end of Camp Hack-a-Thona (the name of our annual three day hackathon in the summer), I had a working prototype for Buck, a new Android build system. By the end of August, I introduced Buck as the build tool for our Android apps, and we deleted all of the build.xml files in our repository a couple of weeks later. It took less time to download Buck’s source code, build it from scratch, and then build the Android app with Buck than it took to build the Android app with Ant. From Day 1, Buck was twice as fast as Ant, cutting Facebook for Android app build times down from 3:40 to 1:30.

Buck has enabled us to scale our repository, as modules are defined by simple, declarative build rules, so the overhead in creating one is negligible. Today we have the equivalent of over 400 Android library projects in our repository (but only 51 AndroidManifest.xml files and 141 res/ directories), which would be unthinkable using Ant. Because all four of our Android apps (Facebook for Android, Messenger, and  Pages Manager) are built from one codebase with a single, unified directory of Java source code, code reuse is straightforward. This fine-grained design also makes it easier to create small, sample applications for testing individual features of an app. These sample apps can be built much more quickly than the full-blown Facebook for Android app, which helps our developers iterate faster.

The crowd at Mobile DevCon NYC convinced me that we should not keep this tool to ourselves and that it was time to open-source Buck. Watch the video here.

We are extremely excited to share Buck with the Android development community. You can check out the code from GitHub as well as explore the documentation. We hope that you find Buck as helpful in scaling and speeding up your Android development as we have.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s