Why does every developer tool love C drive so much?
I was building Noodle.
The app finally spoke.
The emotional moment:
Me:
"hello"
Noodle:
"hey..."
Beautiful.
Then Android decided:
“Cool. Now let me eat your storage.”
I checked my E drive.
My project:
E:\Noodle
Flutter:
E:\dev\flutter
Everything was organized.
Then why was my C drive losing space?
I found:
C:\Users\Me\.gradle
and:
C:\Users\Me\AppData\Local\Pub\Cache
Gigabytes.
Just sitting there.
The question:
Why?
First: Flutter is not the builder
When I run:
flutter run
I thought:
“Flutter builds my app.”
Not exactly.
The journey:
Dart code
↓
Flutter
↓
Android project
↓
Gradle
↓
Android SDK
↓
APK
Flutter is the manager.
Gradle is the actual Android construction worker.
So what is Gradle?
Gradle is Android’s build system.
It handles:
- downloading libraries
- compiling Kotlin/Java
- packaging APKs
- managing versions
Example:
I add:
audioplayers:
Flutter says:
“Okay.”
Android says:
“Wait, I need native Android code.”
Then Gradle downloads:
audioplayers_android
compiles it,
and puts everything together.
But why C drive?
Because Gradle thinks:
“These are developer tools. They belong to the developer machine.”
Not:
“Where is your project?”
So Windows default:
C:\Users\<user>\.gradle
Flutter packages:
C:\Users\<user>\AppData\Local\Pub\Cache
Android SDK:
C:\Users\<user>\AppData\Local\Android
Your project:
E:\Noodle
But your build world:
C:
|
Users
|
Maitry
|
.gradle
AppData
Android
Pub
Your app lives on E.
Your tools live on C.
Why store caches?
At first, I thought:
“Why don’t they just delete this?”
Then I understood.
Imagine every build downloading:
Kotlin compiler
Android libraries
Gradle plugins
dependencies
Every single time.
Pain.
So Gradle says:
“I downloaded this once. I am keeping it.”
But why does it become 10GB?
Because different projects need different versions.
Project A:
Gradle 8.5
Kotlin 1.9
Project B:
Gradle 8.7
Kotlin 2.0
Gradle keeps both.
Your computer:
“I just wanted to build two apps.”
Gradle:
“Perfect. Here are 10GB of memories.”
The funniest part
My first instinct:
“Something is broken.”
The actual lesson:
Nothing was broken.
My computer was doing exactly what it was designed to do.
Caches are not useless files.
They are speed.
Developer lesson:
Every time something feels magical:
Ask:
“Who is actually doing the work?”
Flutter?
Or Android?
Dart?
Or Gradle?
The command:
flutter run
Looks simple.
But underneath:
Your code
↓
multiple tools
↓
multiple languages
↓
multiple systems
↓
one APK
A simple button press hides an entire factory.