Membuat APK (Android Package) Dengan Jetpack Compose


**Jetpack Compose** (UI Toolkit modern untuk Android).

Berikut **struktur direktori yang benar dan umum digunakan** saat membuat aplikasi Android menggunakan **Jetpack Compose**.

---

# 📁 Struktur Direktori Jetpack Compose (Standar)

Struktur default Android Studio saat membuat project Compose:

```
app/
├── src/
│ ├── main/
│ │ ├── AndroidManifest.xml
│ │ ├── java/
│ │ │ └── com.example.myapp/
│ │ │ ├── MainActivity.kt
│ │ │ ├── MyApp.kt
│ │ │ └── ui/
│ │ │ ├── theme/
│ │ │ │ ├── Color.kt
│ │ │ │ ├── Theme.kt
│ │ │ │ ├── Type.kt
│ │ │ └── components/
│ │ │ ├── PrimaryButton.kt
│ │ ├── res/
│ │ │ ├── drawable/
│ │ │ ├── values/
│ │ │ └── ...
│ ├── test/
```

---

# 💡 Struktur Folder **yang direkomendasikan** (Best Practice)

Jika project mulai besar, umumnya dibuat struktur feature-based:

```
app/
├── src/main/java/com.example.myapp/
│ ├── core/
│ │ ├── ui/
│ │ │ ├── theme/
│ │ │ └── components/
│ │ └── util/
│ │
│ ├── feature_home/
│ │ ├── HomeScreen.kt
│ │ ├── HomeViewModel.kt
│ │ ├── HomeEvent.kt
│ │ └── HomeState.kt
│ │
│ ├── feature_detail/
│ │ ├── DetailScreen.kt
│ │ ├── DetailViewModel.kt
│ │ └── ...
│ │
│ ├── navigation/
│ │ └── AppNavHost.kt
│ │
│ ├── MainActivity.kt
│ └── MyApp.kt
```

---

# 📦 Penjelasan Setiap Folder

### ✔ `core/ui/theme/`

Semua setup tema Compose:

* `Color.kt`
* `Type.kt`
* `Shape.kt` (opsional)
* `Theme.kt`

### ✔ `core/ui/components/`

Reusable komponennya Compose:

* tombol
* card
* appbar
  dst.

### ✔ `feature_xxx/`

Folder untuk setiap fitur:

* `xxxScreen.kt` → UI
* `xxxViewModel.kt` → logic
* `xxxState.kt` → state UI
* `xxxEvent.kt` → event (opsional)

### ✔ `navigation/`

Mengatur rute Compose Navigation:

```kotlin
NavHost(...)
```

---

# 🧱 Contoh Isi File Jetpack Compose

### `MainActivity.kt`

```kotlin
class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent { 
            MyApp() 
        }
    }
}
```

### `MyApp.kt`

```kotlin
@Composable
fun MyApp() {
    MyTheme {
        AppNavHost()
    }
}
```

### `HomeScreen.kt`

```kotlin
@Composable
fun HomeScreen() {
    Column(
        modifier = Modifier.fillMaxSize().padding(16.dp)
    ) {
        Text("Hello Jetpack Compose!")
    }
}
```

---



Thank You 
Good Working For You 

Comments

Popular posts from this blog

Step By Step Aktifasi GitHub Pages Dan Perbandingan GitHub App Dengan Versi Web

Pengertian : getpid() Dan PID For Example URL

Mengatasi "signal : killed" Sewaktu Menjalankan Program Di Terminal