Start Learning Kotlin - Android
Berikut adalah versi development-system.md yang telah disesuaikan untuk proyek Mobile Development Android dengan Kotlin
, Room
, dan Clean Architecture
Dokumen ini menjelaskan sistem pengembangan yang digunakan dalam proyek Android ini, termasuk tools, konfigurasi, standar, dan alur kerja berdasarkan arsitektur bersih (Clean Architecture).
1. Tools & Environment
- Bahasa Pemrograman: Kotlin
- IDE: Android Studio Hedgehog atau terbaru
- Build System: Gradle (versi 7+)
- Database Lokal: Room (Android Jetpack)
- Arsitektur: Clean Architecture (dengan lapisan
data
,domain
, danpresentation
) - Layout: XML Layout
- Dependency Injection: Hilt / Dagger
- Version Control: Git (GitHub / GitLab)
- CI/CD: GitHub Actions (opsional)
2. Project Structure (Clean Architecture)
project-root/
│
├── data/ # Implementasi repository, data source, dan model untuk persistence
│ └── local/ # Implementasi Room (DAO, Entities, Database)
│
├── domain/ # Berisi entitas bisnis (Entity) dan use case
│
├── presentation/ # ViewModel, UI layer (Activity/Fragment), dan state management
│
├── di/ # Modul dependency injection (Hilt)
│
├── utils/ # Kelas-kelas utilitas umum
│
└── build.gradle # Konfigurasi Gradle
3. Branching Strategy
Menggunakan pendekatan Git Flow:
main
: Kode stabil dan siap rilis.develop
: Integrasi semua fitur baru.feature/<nama-fitur>
: Untuk pengembangan fitur.bugfix/<nama-bug>
: Perbaikan bug.release/<versi>
: Persiapan rilis.hotfix/<perbaikan>
: Perbaikan kritis darimain
.
4. Dependency Management
- Dikelola melalui
build.gradle.kts
- Gunakan versi library terbaru yang stabil.
- Dependensi utama:
implementation("androidx.room:room-runtime:<version>")
kapt("androidx.room:room-compiler:<version>")
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:<version>")
implementation("com.google.dagger:hilt-android:<version>")
kapt("com.google.dagger:hilt-compiler:<version>")
5. Build & Run Instructions
# Clone repository
git clone https://github.com/username/project-name.git
cd project-name
# Buka dengan Android Studio
# Jalankan melalui tombol "Run" atau gunakan terminal:
./gradlew clean build
./gradlew installDebug
6. Testing
- Unit test ditulis untuk setiap UseCase dan ViewModel.
- Integration test untuk Repository dan DAO.
- Testing libraries:
- JUnit
- Mockito / MockK
- AndroidX Test
- Espresso (untuk UI testing)
Struktur direktory:
src/test/java/ # Unit tests
src/androidTest/java/ # Instrumentation tests
7. Continuous Integration (CI)
- Menggunakan GitHub Actions untuk:
- Build otomatis saat push/pull request.
- Menjalankan unit test dan lint.
- Contoh workflow: .github/workflows/android.yml
8. Coding Standards
- Ikuti Kotlin Coding Style Guide
- Gunakan ktlint atau detekt untuk menjaga konsistensi kode.
- Penamaan yang deskriptif, hindari singkatan tidak jelas.
- Gunakan sealed class untuk UI State dan Event.
9. Security & Best Practices
- Jangan menyimpan API Key secara hardcoded.
- Gunakan file local.properties atau BuildConfig untuk konfigurasi sensitif.
- Selalu validasi input user dan handle semua error dengan baik (misal via sealed class Result atau Resource).
- Hindari Context leakage di ViewModel.