Nelson Osacky
Presentations
Blog Posts
Gradle Plugins
Contact

Android Engineer. With a focus on Productivity and builds

Nelson Osacky

How fast does my internet need to be to use the Gradle Remote Build Cache? (Part 2)

In this post well estimating if the remote build cache is worth it using the internals of Gradle. This post is part of a series that dives in the details of whether it is better to rerun tasks locally or download them from the remote build cache on a slow internet connection.


How fast does my internet need to be to use the Gradle Remote Build Cache? (Part 1)

Is it worth downloading artifacts from a remote build cache node on a slow internet connection?

This question is becoming ever more important as we all switch from our blazing fast office internet connections to our home internet connections.


Speeding Up Builds with Dagger Reflect

How we cut build times in half at SoundCloud while making only minimal changes to the codebase using Dagger Reflect for debug builds. Also introducing Delect - the new open source Dagger Reflect Gradle Plugin.


Solving Remote Build Cache Misses By Annoying your Colleagues

Part of a build engineer’s role is to speed up builds. Improving build performance and avoiding work with caching is one way to achieve this, but another tool in the build engineer’s belt is that of disallowing slow builds. This is part two in a series about solving Gradle remote build cache misses.


Is building from the terminal faster than Android Studio?

A couple people have sworn to me that building from command line is faster than building from Android Studio. I have also heard that Android Studio is faster than command line. Can this really be true?

This blog post dives in to a few reasons why builds might behave differently in Android Studio vs the terminal.


Gradle Remote Build Cache Misses

Modularization is key to decreasing build times, but avoiding work is another important part of the puzzle, and build caching is one way to avoid that work. Gradle, our tool for building Android, has a local file system cache that reuses outputs of previously performed tasks.


Reducing Boilerplate with the new HasAndroidInjector in Dagger 2.23

Dagger 2.23 introduces the HasAndroidInjector interface. It reduces some boilerplate in your Application class. Here is how you can destroy some of that boilerplate.


Testing new versions of the Android Gradle Plugin

Here’s how to test new versions of the Android Gradle Plugin while shipping your app with a stable version. You can use this pattern to test any new version of a Gradle plugin or a library. This is a great way to allow developers to use new build performance features and IDE improvements in the Android Gradle plugin while simultaneously shipping your app with a stable version of the Android Gradle Plugin.


 
 
 

Nelson Osacky

Professional Android Developer with a focus on builds, productivity and developer experience.

 

Blog Posts     Presentations  Gradle Plugins    Contact