Setup sử dụng Hilt (DI) trong project android

Dagger là một thư viện không dễ hiểu khi nhìn sơ qua đối với hầu hết các nhà phát triển.
Gần đây Google đã ra mắt Hilt giúp giảm độ phức tạp của Dagger giúp các nhà phát triển tiếp cận dễ dàng hơn.

Hilt đang có version là : 2.28-alpha

Trong bài viết này mình sẽ thử setup để demo cách sử dụng Hilt:

  • Khởi tạo Hilt
  • Cài đặt Module
  • Hilt ViewModel

Đầu tiên, thêm hilt-android-gradle-plugin plugin vào project’s root build.gradle file:

Sau đó, thêm các plugin vào app/build.gradle file:

1. Application Class

Điều đầu tiên bạn sẽ làm là thêm @HiltAndroidApp vào class Application của ứng dụng để khởi tạo Hilt quá đơn giản luôn.

2. Hilt Modules

Để loại bỏ AppComponent của Dagger tất cả các module của Hilt sử dụng @InstallIn(Applicationcomponent::class)

3. Activities & Fragments

Hilt cung cấp @AndroidEntryPoint annotation sử dụng cho activities và fragments. Không phải khai báo nhiều như bên Dagger nữa code cũng dễ xem hơn.

Đơn giản vậy thôi  bây giờ Dagger modules ActivityBuilderModule,FragmentBuilderModule and AndroidInjectionModule Dagger không cần thiết nữa, code trở nên gọn hơn rất nhiều.

4. ViewModel

Hilt hiện tại cũng đã support ViewModel, thêm Hilt viewmodel  vàoapp/build.gradle file:

Và để sử dụng ở UserViewModel sẽ khai báo  @ViewModelInject

Trường hợp sử dụng SavedStateHandle thì buộc phải khai báo @Assisted

Để sử dụng UserViewModel chúng ta sẽ làm như sau:

Như vậy là chúng ta đã setup và sử dụng thành công Hilt Module và Viewmodel rồi, về cơ bản thì cũng khá dễ để tiếp cận.

Full source code sample  Github:

  • Sử dụng Room DB
  • Sử dụng Retrofit + ViewModel

Ngoài ra bạn có thể tìm hiểu thêm các phần nâng cao hơn tại đây.

Nguyễn Linh

Nguyễn Linh

Chia sẻ để cùng tiến bộ...