توسعه دهنده موبایل
تزریق وابستگی با Hilt (یک)
اول دیپندنسی ها رو به این شکل وارد میکنیم:
buildscript {
...
dependencies {
...
classpath 'com.google.dagger:hilt-android-gradle-plugin:2.28-alpha'
}
}
apply plugin: 'kotlin-kapt'
apply plugin: 'dagger.hilt.android.plugin'
dependencies {
implementation "com.google.dagger:hilt-android:2.28-alpha"
kapt "com.google.dagger:hilt-android-compiler:2.28-alpha"
}
فرض کنیم یه کلاس Car داریم که برای تولید شدن نیاز به کلاس Engine داره و ما میخوایم یه نمونه ازاین کلاس رو در MainActivity داشته باشیم و متدهای اون رو صدا بزنیم.
همه برنامه هایی که از Hilt استفاده می کنند باید دارای یک کلاس از نوع اپلیکیشن باشند که انوتیشن HiltAndroidApp رو داشته باشن.پس کلاس App رو ایجاد میکنیم که از Application ارث بری کرده و بالاسرش انوتیشن @HiltAndroidApp رو قرار میدیم.
@HiltAndroidApp
class App : Application()
بعد از ایجاد Hilt در کلاس اپلیکیشن شما ، Hilt می تواند وابستگی به سایر کلاسهای Android که دارای انوتیشن AndroidEntryPoint باشند رو فراهم کنه پس کلاس MainActivity ما اینشکلی میشه:
@AndroidEntryPoint
class MainActivity: AppCompatActivity() { ... }
در حال حاضر Hilt از کلاسهای زیر را پشتیبانی می کنه و انوتیشن AndroidEntryPoint رو میتونیم براشون به کار ببریم:
- Application (by using @HiltAndroidApp)
- Activity
- Fragment
- View
- Service
- BroadcastReceiver
خب کلاس Car ما اینشکلی میشه:
کلاس Engine هم اینشکلی میشه:
حالا توی کلاس MainActivity میتونیم یه فید از نوع Car بسازیم که lateinit باشه و متد start رو صدا بزنیم وظیفه تامین وابستگی به Car رو به هیلت بسپره MainActivity الان اینشکلی شده:
اگه برنامه رو run کنیم میبینیم که خروجی به این شکل میشه:
مطلبی دیگر از این انتشارات
استفاده از دیتا بایندینگ در ریسایکلرویو (اندروید)
مطلبی دیگر از این انتشارات
خداحافظ فایربیس : ردیابی کرش ها و مانیتورینگ برنامه با سرویس قدرتمند Yandex - AppMetrica
مطلبی دیگر از این انتشارات
3 راه برای کاهش فضای استفاده شده توسط Android Studio در درایو C