Buck vs Gradle, pro's and cons for Android build systems -


i'm using ant build android projects doesn't cut larger projects , maintaining different deliverables becoming pain.

two alternatives i'm looking @ facebook's buck (http://facebook.github.io/buck/) , gradle google backing android studio (http://tools.android.com/tech-docs/new-build-system/user-guide).

besides trying them out , reading on coverage ask fine stackoverflow people recommendations. preferably if you've used either tool while, bonus points buck since didn't coverage.

important points

  • build speed, dev builds
  • multiple deliverables same code base
  • ease of use

i'm open other alternatives well. suggest , why?

as put front , center in buck documentation: "buck build system android encourages creation of small, reusable modules consisting of code , resources."

by design, buck encourages create small modules can compose new app out of existing building blocks. means maintaining multiple deliverables straightforward: eliminates boilerplate without requiring organize repository predefined structure. can create ad-hoc build steps suit needs buck via macros , genrules. (a more formalized extension system in works.)

we care lot speed, particularly speed of incremental builds. because buck has strong concept of dependencies, can avoid rebuilding intermediate artifacts. other build systems try (like ant), sacrifice correctness, result. don't.

we recognize ide support important. google's collaboration gradle gives them leg there. however, buck has command generate intellij project dependency graph defined in buck build files, , have broken ground on our own intellij plugin, care about.

finally, bear in mind buck used build facebook, facebook messenger, , instagram android. buck not going away. further, code 3 apps (and reduced versions of apps, faster development cycles) lives in 1 git repository @ facebook, of working on buck internally sensitive needs of large codebases support multiple deliverables.


Comments

Popular posts from this blog

python - How to create a legend for 3D bar in matplotlib? -

java - Multi-Label Document Classification -

php - Dynamic url re-writing using htaccess -