0
0
Lập trình
NM

Hướng Dẫn Triển Khai Hilt Dagger Trong Dự Án Android Với Kotlin

Đăng vào 1 ngày trước

• 4 phút đọc

Hướng Dẫn Triển Khai Hilt Dagger Trong Dự Án Android Với Kotlin

Hilt là một thư viện Dependency Injection (DI) được phát triển bởi Google, dựa trên Dagger, nhằm đơn giản hóa quá trình sử dụng DI trong các ứng dụng Android. Bài viết này sẽ hướng dẫn bạn từng bước từ cài đặt Hilt đến áp dụng thực tế trong dự án Android của bạn.

1. Tại Sao Nên Sử Dụng Hilt?

Trước khi đi vào chi tiết triển khai Hilt, có một số lý do chính để bạn xem xét việc áp dụng Hilt trong dự án của mình:

  • Đơn giản hóa DI: Hilt giúp việc cấu hình và sử dụng Dependency Injection dễ dàng hơn so với Dagger truyền thống. Điều này đặc biệt hữu ích cho những ai mới bắt đầu với concept DI.
  • Tích hợp sâu với Android: Hilt cung cấp các annotation tối ưu cho các thành phần Android như Activity, Fragment và ViewModel, giúp việc tiêm phụ thuộc trở nên dễ dàng và trực quan hơn.
  • Quản lý vòng đời hiệu quả: Hilt tích hợp chặt chẽ với lifecycle của Android, giúp bạn quản lý vòng đời của các dependency một cách hiệu quả và an toàn hơn.

2. Cài Đặt Hilt Trong Dự Án Android

Để sử dụng Hilt, trước tiên bạn cần thực hiện một số bước cài đặt đơn giản:

Bước 1: Thêm Dependency Vào Tệp build.gradle Của Project

Bạn cần thêm các dependency cần thiết bằng cách mở tệp build.gradle cấp project:

gradle Copy
buildscript {
    ext.hilt_version = '2.42'
    dependencies {
        classpath "com.google.dagger:hilt-android-gradle-plugin:$hilt_version"
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

Bước 2: Thêm Plugin và Dependency Vào Tệp build.gradle Của Module

Tiếp theo, mở tệp build.gradle của module (thường là app) và thêm các plugin cũng như dependency sau:

gradle Copy
plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-kapt'
    id 'dagger.hilt.android.plugin'
}

dependencies {
    implementation "com.google.dagger:hilt-android:$hilt_version"
    kapt "com.google.dagger:hilt-android-compiler:$hilt_version"
}

Bước 3: Kích Hoạt Hilt Trong Ứng Dụng

Cuối cùng, bạn cần kích hoạt Hilt trong ứng dụng của mình bằng cách thêm annotation dưới đây vào lớp Application:

kotlin Copy
@HiltAndroidApp
class MyApplication : Application() {
}

3. Triển Khai Hilt Trong Các Thành Phần Android

Để sử dụng Hilt trong các thành phần của ứng dụng Android, bạn có thể tham khảo các ví dụ sau:

Triển Khai Hilt Trong Activity

kotlin Copy
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
    @Inject lateinit var myDependency: MyDependency

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        // Sử dụng myDependency ở đây
    }
}

Triển Khai Hilt Trong Fragment

kotlin Copy
@AndroidEntryPoint
class MyFragment : Fragment() {
    @Inject lateinit var myDependency: MyDependency

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        // Sử dụng myDependency ở đây
        return inflater.inflate(R.layout.fragment_my, container, false)
    }
}

Triển Khai Hilt Trong ViewModel

Để tạo ViewModel với Hilt:

kotlin Copy
@HiltViewModel
class MyViewModel @Inject constructor(
    private val myRepository: MyRepository
) : ViewModel() {
    // Logic của ViewModel
}

Sử Dụng ViewModel Trong Activity hoặc Fragment

kotlin Copy
@AndroidEntryPoint
class MyActivity : AppCompatActivity() {
    private val viewModel: MyViewModel by viewModels()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_my)
        // Sử dụng viewModel ở đây
    }
}

4. Tạo Module Hilt Để Cung Cấp Dependency

Modules trong Hilt được sử dụng để cung cấp các dependency cho ứng dụng của bạn. Dưới đây là ví dụ về cách tạo một module:

kotlin Copy
@Module
@InstallIn(SingletonComponent::class)
object AppModule {

    @Provides
    @Singleton
    fun provideMyRepository(apiService: ApiService): MyRepository {
        return MyRepositoryImpl(apiService)
    }

    @Provides
    @Singleton
    fun provideApiService(): ApiService {
        return Retrofit.Builder()
            .baseUrl("https://api.example.com")
            .addConverterFactory(GsonConverterFactory.create())
            .build()
            .create(ApiService::class.java)
    }
}

5. Kết Luận

Hilt là một công cụ mạnh mẽ giúp đơn giản hóa việc quản lý Dependency Injection trong các dự án Android. Việc triển khai Hilt không chỉ giúp mã nguồn gọn gàng và dễ hiểu hơn, mà còn giúp bạn mở rộng và bảo trì ứng dụng hiệu quả hơn trong tương lai. Chúng tôi hy vọng rằng qua bài viết này, bạn đã nắm vững những bước cơ bản để triển khai Hilt cho dự án Android của mình.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào