RSS Amplifier

Blog

Aurimas Liutikas

A personal page of Aurimas Liutikas.

liutikas.netSource feed ↗10 posts

Live Last read · last published · next check

Latest posts

What Are You Syncing About?

Did you ever wonder what happens when you press that elephant button (“Sync Project with Gradle Files”) in Android Studio? Before we dive in on how it works, let’s consider what an IDE needs from Gradle to work well. Here is a small set of details it retrieves about the project: What is the list of all the subprojects? What plugins are applied to each project? Where are all the source directories?…

Attention Pyramid

If you worked enough time with software, you must have crossed paths with the idea of a testing pyramid. It is a handy aid to make sure tests are in the right places and quantity. It is especially helpful when a project is moving quick, and you have a limited amount of time to spend on tests. It takes away some of the mental burden and team friction.

Hidden Fingerprinting - Hard to Measure Gradle Task Cost

Let’s say you have a simple task that prints out current git commit:

Scope Reap - What are you calling?

Let’s say we have foo/bar/build.gradle file with the following contents:

A Complete Library

Block 40% layoffs has spurred a lot of discussions about open source projects attached to a for-profit corporation. In many cases such projects are largely hero-efforts from a few amazing individual employees rather than the corporation at large. This in turn can cause folks to try to assess this situation in terms of impact to their own project and induce panic to move away from these OSS…

org.gradle.internal.operations.trace

Sometimes I find it fun to look into internal tools of large projects. I want to share about an internal Gradle tracing feature that is very neat, but also could disappear tomorrow as it is internal. This tool is similar to Gradle Build Scans that you might have used for your projects. However, this focuses on much more granular view of what happens within your Gradle invocation. Gradle team uses…

Benchmark, Profile, Trace - What’s the difference?

For the longest time benchmarking, profiling, and tracing seemed like synonyms to me. I didn’t have an appreciation for what each technique is and when it should be used. I would like to help you fix that.

Relationship Status of minSdk, compileSdk, targetSdk

It is year 2026 and yet Android developers continue to be mystified about minSdk, compileSdk, and targetSdk. There are some myths and false claims floating in the community that I would like to clear up.

Spray and Pray - Cost of Overly-Broad Spotless Targets

In the post on the unseasonable Gradle configuration time Spotless was the culprit for the huge increase in the configuration time for Androidify project. As a workaround that post suggested removing Spotless Gradle plugin, but it turns out there is a better way. Our performance issue rests in the following Spotless configuration:

Going Offline - Steps to a hermetic Gradle build

By default, Gradle is effectively useless on an offline machine. Even fetching Gradle distribution itself requires network access, not to mention build dependencies, project dependencies, test tools and so on. This is generally not a problem for most folks as you have the internet and Gradle fetches things for you as it performs work. However, if you want to be able to work offline (or behind a…