์˜์กด์„ฑ ์ฃผ์ž…์„ ์™œํ• ๊นŒ?

์ฐธ๊ณ ์‚ฌ์ดํŠธ

[ Android ] [ Kotlin ] Hilt

1. ์˜์กด์„ฑ ์ถ”๊ฐ€

// ํ”„๋กœ์ ํŠธ ์ˆ˜์ค€
id("com.google.dagger.hilt.android") version "2.50" apply false

// ์•ฑ์ˆ˜์ค€
plugins {
	id("com.google.dagger.hilt.android")
}

dependencies {
	val hilt_version = "2.50"
	
  implementation("com.google.dagger:hilt-android:$hilt_version")
  ksp("com.google.dagger:hilt-android-compiler:$hilt_version")
}

Room DB ์˜ˆ์‹œ

์Šคํ‚ค๋งˆ(๋ฐ์ดํ„ฐ ํ…Œ์ด๋ธ” ๊ตฌ์„ฑ)

@Entity(tableName = "users")
data class User(
    @PrimaryKey(autoGenerate = true) val id: Int = 0,
    @ColumnInfo("name") val name: String = "",
    @ColumnInfo("email") val email: String = ""
)

๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ์ฟผ๋ฆฌ Dao

@Dao
interface UserDao {

    @Query("SELECT * FROM users")
    fun getAllUsers(): Flow<List<User>>

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    fun insertUser(user: User)

    @Delete
    fun deleteUser(user: User)
}