Gradle
Struktur direktori Gradle adalah susunan folder dan file yang digunakan oleh Gradle untuk mengelola proyek dan build. Dalam konteks pengembangan aplikasi, terutama aplikasi Android, Gradle mengatur folder dan file yang diperlukan untuk mengelola dependensi, build scripts, output build, dan konfigurasi lainnya.
Berikut adalah struktur direktori Gradle yang umum ditemukan dalam proyek Android berbasis Gradle:
1. Root Directory (/)
Ini adalah direktori utama proyek di mana semua file dan folder proyek berada, termasuk file Gradle utama yang mengatur seluruh proyek.
/your-project
β
βββ build.gradle # Build script untuk seluruh proyek (Project-level)
βββ settings.gradle # Menentukan proyek dan modul yang disertakan dalam build
βββ gradle.properties # Konfigurasi properti global Gradle untuk proyek
βββ gradlew # Skrip untuk menjalankan Gradle di sistem tanpa instalasi Gradle
βββ gradlew.bat # Skrip Gradle untuk Windows
βββ /gradle # Direktori untuk wrapper Gradle
β βββ wrapper # Berisi file Gradle wrapper
βββ /app # Modul utama proyek (modul Android)
β βββ build.gradle # Build script spesifik untuk modul ini (App-level)
β βββ src # Folder sumber kode untuk modul ini
βββ /build # Folder output untuk hasil build
βββ /node_modules # Folder yang berisi dependensi Node.js untuk proyek React Native (jika digunakan)
2. File di Root Directory
-
build.gradle(Project-level): Ini adalah file build script utama yang mengatur konfigurasi global untuk seluruh proyek. Di sini, kita bisa mendefinisikan repositori yang akan digunakan, dependensi, dan plugin untuk seluruh proyek. -
settings.gradle: File ini mendefinisikan modul-modul atau subproyek yang termasuk dalam proyek. Biasanya digunakan untuk meng-include modul Android (:app) dan, jika ada, modul-modul lain. -
gradle.properties: File ini menyimpan properti-properti global yang digunakan oleh Gradle untuk proyek. Ini sering digunakan untuk pengaturan seperti versi SDK, pengelolaan heap memory, dan pengaturan lingkungan. -
gradlewdangradlew.bat: Ini adalah skrip Gradle Wrapper yang memungkinkan proyek dibangun menggunakan Gradle tanpa harus menginstal Gradle secara manual di sistem.gradlewdigunakan untuk sistem berbasis UNIX (Linux, macOS), dangradlew.batuntuk Windows.
3. Folder /gradle/wrapper
Folder ini berisi file untuk Gradle wrapper, yang memungkinkan proyek dibangun dengan versi Gradle yang spesifik. Ini penting agar semua anggota tim menggunakan versi Gradle yang sama tanpa harus menginstal versi Gradle tersebut secara manual.
/gradle
βββ /wrapper
βββ gradle-wrapper.jar # File JAR untuk Gradle Wrapper
βββ gradle-wrapper.properties # Properti untuk mengatur versi Gradle yang digunakan
-
gradle-wrapper.properties: File ini menentukan versi Gradle yang digunakan oleh Gradle Wrapper. Ini memastikan bahwa setiap orang yang membangun proyek akan menggunakan versi yang sama.Contoh isinya:
distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists
4. Modul app/ (Modul Android)
Folder app/ adalah modul utama proyek Android yang berisi kode sumber, sumber daya, dan konfigurasi untuk aplikasi Android. Di sini juga terdapat file build.gradle spesifik untuk modul ini.
/app
βββ build.gradle # Build script untuk modul Android (App-level)
βββ src # Folder sumber kode
β βββ /main
β β βββ AndroidManifest.xml # Deskripsi komponen aplikasi Android
β β βββ /java # Kode sumber aplikasi dalam Java/Kotlin
β β βββ /res # Folder untuk sumber daya aplikasi (gambar, layout, dll)
β β βββ /assets # Folder untuk menyimpan aset seperti font, file JSON, dll
β βββ /test # Folder untuk kode tes (unit testing, instrumented tests)
βββ proguard-rules.pro # Konfigurasi untuk ProGuard (jika digunakan untuk optimasi dan obfuscation)
4.1 File build.gradle (App-level)
Ini adalah file build script yang digunakan untuk mengonfigurasi modul app. Di sini, Anda bisa menentukan versi SDK, dependensi aplikasi, pengaturan ProGuard, dan build types (seperti debug dan release).
Contoh isi:
android {
compileSdkVersion 33
defaultConfig {
applicationId "com.example.myapp"
minSdkVersion 21
targetSdkVersion 33
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.facebook.react:react-native:+'
}
5. Folder /build
Folder ini berisi hasil kompilasi dan output build yang dihasilkan oleh Gradle. Folder ini biasanya tidak perlu disimpan dalam sistem kontrol versi (seperti Git) karena isinya bisa diregenerasi oleh Gradle.
/build
βββ /outputs # Berisi file APK atau AAB yang dihasilkan
βββ /intermediates # Berisi file sementara yang digunakan saat proses build
βββ /generated # Berisi file kode yang dihasilkan (seperti file dari Data Binding atau R.java)
6. Folder /node_modules (untuk React Native)
Untuk proyek React Native, folder ini berisi semua dependensi JavaScript yang diunduh melalui npm atau yarn. Folder ini digunakan untuk mengelola semua pustaka pihak ketiga JavaScript.
Kesimpulan
Struktur direktori Gradle dalam proyek Android atau React Native mengelola berbagai aspek pengembangan, dari manajemen dependensi hingga proses build otomatis. Dengan memahami susunan folder dan file yang ada, Anda dapat lebih mudah mengonfigurasi dan memelihara proyek, baik untuk pengembangan, pengujian, maupun untuk membuat aplikasi siap dipublikasikan.