arrow_back How CI/CD helps us in avoiding chaos @Go-Jek
Gradle on Steroids
Submitted by Sumit Das (@6amedev) on Wednesday, 10 August 2016
Section: Full talk (40 minutes) Technical level: Advanced
As developers, we spend way too much time waiting for things. We all know waiting is no fun and we’d rather spend time developing and testing our app. On large multi-module projects, sometimes you’d find yourself waiting for test suites to complete, but quite often it’s the Gradle build, which seems like a complete waste of time.
In this talk, we will dive deep into the Gradle build process for Android, identifying the reasons for it to slow down. By introducing build profiling, we will talk about the concept of build phases of Gradle and will bring forth the ones which do not actually include the execution of build. Using a few open source codebases as a reference, we will figure out the mistakes we often make while writing our build files. Over the course of the talk, we will discuss about
- Gradle daemons and build modes
- Developer specific build files
- Difference between developer and CI build files
- Optimizing build dependencies
- Abstracting CI dependencies from dev dependencies
- Jack and Jill toolchain
- Pre-dexing & Incremental builds
By implementing the ideas presented in this talk, you would be able to speed up your build times drastically. Benefitting from removing unnecessary dependencies from your dev builds, it’d ease the extensibility of your projects.
I am Sumit and my co-presenter Chirag, work at Go-Jek Engineering. We have beeing working on a large scale mobile-first transportation startup with an app having 20 million Play Store and App Store downloads, which has seen 900x growth in the past year.