# A Deeper Look at AutoValue

DevFeed: [A Deeper Look at AutoValue](<https://devfeed.tech/articles/a-deeper-look-at-autovalue-30585.md>)

Original publisher: [Read original article](<https://ryanharter.com/blog/2016/04/a-deeper-look-at-autovalue/>)

Published: 2016-04-08T07:00:00Z

Content type: tutorial

Language: en

Sources: [Blogs on Ryan Harter](<https://devfeed.tech/sources/blogs-on-ryan-harter.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Code](<https://devfeed.tech/topics/code.md>), [Android](<https://devfeed.tech/topics/android.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Maven](<https://devfeed.tech/topics/maven.md>)

Tags: [annotation-processor](<https://devfeed.tech/tags/annotation-processor.md>), [code-completion](<https://devfeed.tech/tags/code-completion.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [isn-t](<https://devfeed.tech/tags/isn-t.md>), [java](<https://devfeed.tech/tags/java.md>), [maven](<https://devfeed.tech/tags/maven.md>)

## AI overview

This tutorial examines how AutoValue works as a compile-time Java annotation processor. It explains the effects of generated code on application size and performance, and describes configuring AutoValue correctly for Android Gradle projects and Maven builds to avoid bundling processing dependencies in the final application.

## Source excerpt

In my last article, I gave a basic introduction to AutoValue, the code generating annotation processor that makes immutable value types in Java easy. Now I'd like to take a bit of a deeper look at AutoValue and how it works. Compile Time Annotation Processing First things first, AutoValue is a compile time annotation processor. This means that it only runs when you compile your code, as opposed to when your app is running. This has a few implications for your app, namely that including AutoValue doesn't significantly effect your application's performance or size.