جستجو برای:
سبد خرید 0
  • خانه
  • دوره های آموزشی
    • دوره های حضوری و آنلاین
      • دوره جامع برنامه نویسی اندروید
      • دوره جامع برنامه نویسی فلاتر
      • دوره برنامه نویسی React Native
      • دوره آموزشی برنامه نویسی iOS
    • دوره های متخصص و حرفه ای
      • دوره متخصص اندروید (پروژه محور)
      • دوره متخصص فلاتر (پروژه محور)
      • دوره آموزش امنیت در اندروید
      • دوره درآمدزایی دلاری از گوگل پلی در ایران
  • آموزش رایگان
    • دوره رایگان اندروید
    • دوره رایگان فلاتر
  • مشاورهجدید
  • دوره VIP
  • وبلاگ
ورود
گذرواژه خود را فراموش کرده اید؟
عضویت

اطلاعات شخصی شما برای پردازش سفارش شما استفاده می‌شود، و پشتیبانی از تجربه شما در این وبسایت، و برای اهداف دیگری که در سیاست حفظ حریم خصوصی توضیح داده شده است.

ارسال مجدد کد یکبار مصرف (00:60)
  • 02188945907
  • info@amooznegar.com
  • لیست علاقه مندی ها
آکادمی آموزنگار
  • خانه
  • دوره های آموزشی
    • دوره های حضوری و آنلاین
      • دوره جامع برنامه نویسی اندروید
      • دوره جامع برنامه نویسی فلاتر
      • دوره برنامه نویسی React Native
      • دوره آموزشی برنامه نویسی iOS
    • دوره های متخصص و حرفه ای
      • دوره متخصص اندروید (پروژه محور)
      • دوره متخصص فلاتر (پروژه محور)
      • دوره آموزش امنیت در اندروید
      • دوره درآمدزایی دلاری از گوگل پلی در ایران
  • آموزش رایگان
    • دوره رایگان اندروید
    • دوره رایگان فلاتر
  • مشاورهجدید
  • دوره VIP
  • وبلاگ
شروع کنید
آخرین اطلاعیه ها
لطفا برای نمایش اطلاعیه ها وارد شوید
0

وبلاگ

آکادمی آموزنگار > اخبار > برنامه نویسی > اندروید > آموزش Dagger Hilt – راهنمای گام به گام

آموزش Dagger Hilt – راهنمای گام به گام

1401-05-13
ارسال شده توسط آموزنگار
اندروید، فلاتر
آموزش Dagger Hilt

Dagger Hilt یک ابزار وابستگی‌گذاری (Dependency Injection) برای برنامه‌های اندرویدی است که توسط گوگل توسعه یافته است. این ابزار بر پایه‌ی Dagger ساخته شده و کار را برای توسعه‌دهندگان ساده‌تر می‌کند. در این راهنمای گام‌به‌گام، نحوه‌ی استفاده از Dagger Hilt را بررسی خواهیم کرد.

اما برای راه اندازی و کار با Dagger نیاز به مقدار زیادی کد boilerpalte  (نوشتن کدهایی ک باعث میشه حجم کد بره بالا) و منحنی یادگیری بسیار شیب دار داریم . سپس Dagger-Android آمد که کد boilerpalte  را کاهش دهد، اما موفق نشد.

در حال حاضر، اکنون راه پیشنهادی گوگل ، انتشار Dagger-Hilt به عنوان بخشی از کتابخانه های Jetpack برای استفاده از آن است. در  Dagger-Hilt :

  • کد dagger برای توسعه دهندگان آسان و ساده شود.
  • ارائه مجموعه ای متفاوت از اتصالات) binding  (برای انواع build type ها.
  • مراقبت از محل تزریق وابستگی‌ها و باقی ماندن همه code generation توسط خود dagger با استفاده از annotation ها و در نتیجه حذف همه کدهای boilerpalte  اتفاق می‌افتد.

در این آموزش می آموزیم:

  • درک dagger
  • راه اندازی یک پروژه جدید
  • ساختار پروژه
  • ادغام Dagger-Hilt
  • WorkManager با Dagger-Hilt
  • Qualifier ها

چرا از Dagger Hilt استفاده کنیم؟

  • مدیریت وابستگی‌ها در پروژه‌های اندروید را ساده‌تر می‌کند.
  • نیازی به تنظیمات پیچیده Dagger ندارد.
  • چرخه‌ی حیات کامپوننت‌های اندروید را به‌صورت خودکار مدیریت می‌کند.
  • توسط Google پشتیبانی می‌شود و برای کار با Jetpack و سایر کتابخانه‌های اندروید بهینه شده است.

شناخت Dagger

قبل از شروع با Dagger-Hilt باید اصول اولیه Dagger را بدانیم. در این مقاله به شما کمک می کنیم تا Dagger و اصطلاحات آن را بشناسید.

ساخت یک بازی دو بعدی با فلاتر
خواندن این مقاله
قدرت گرفته از افزونه نوشته‌های مرتبط هوشمند

اساساً برای شناخت Dagger باید چهار annotation اصلی را بشناسیم.

  • Module
  • Component
  • Provides
  • Inject

برای درک بهتر آن ، Module را به عنوان یک فراهم کننده(provider) وابستگی در نظر بگیرید و یک activity یا هر class دیگری را به عنوان مصرف کننده(consumer) در نظر بگیرید. اکنون برای ایجاد وابستگی از provider به consumer ، پلی بین آن‌ها داریم، در Dagger، Component به عنوان آن پل خاص کار می‌کند.

در چنین حالتی، یک Module یک کلاس است و ما آن را با @Module برای Dagger حاشیه نویسی می کنیم تا آن را به عنوان Module (واحد مستقل) درک کنیم.

یک component یک interface است که با @Component حاشیه نویسی می شود و Module ها را در آن جا می گیرد. (اما اکنون، این annotation در Dagger-Hilt مورد نیاز نیست)

Provide ها یک annotation در کلاس Module برای فراهم کردن وابستگی هستند و

Inject یک annotation برای تعریف وابستگی در داخل مصرف کننده(consumer)  استفاده می شود.

آموزش Dagger Hilt – راهنمای گام به گام

به شدت توصیه می شود قبل از مهاجرت به سمت Dagger-Hilt در مورد Dagger خام(raw)،  بدانید.

افزودن Dagger Hilt به پروژه

مرحله ۱: اضافه کردن وابستگی‌ها

ابتدا build.gradle سطح پروژه را باز کرده و پلاگین Hilt را اضافه کنید:

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
    id 'dagger.hilt.android.plugin'
}

سپس در build.gradle ماژول app وابستگی‌های زیر را اضافه کنید:

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

همچنین افزونه‌ی kapt را فعال کنید:

plugins {
    id 'kotlin-kapt'
}

پیکربندی اولیه Hilt در پروژه

مرحله ۲: اضافه کردن Hilt به کلاس Application

برای فعال‌سازی Hilt، باید کلاس Application خود را تغییر داده و از @HiltAndroidApp استفاده کنید:

@HiltAndroidApp
class MyApplication : Application()

تعریف وابستگی‌ها در Hilt

مرحله ۳: ایجاد یک ماژول Hilt

برای تعریف وابستگی‌ها، یک کلاس ماژول ایجاد کنید. ماژول‌ها در Hilt با @Module و @InstallIn مشخص می‌شوند.

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

    @Provides
    @Singleton
    fun provideRetrofit(): Retrofit {
        return Retrofit.Builder()
            .baseUrl("https://api.amooznegar.com")
            .addConverterFactory(GsonConverterFactory.create())
            .build()
    }

    @Provides
    fun provideApiService(retrofit: Retrofit): ApiService {
        return retrofit.create(ApiService::class.java)
    }
}

✅ این ماژول یک نمونه Retrofit و ApiService را برای وابستگی‌گذاری فراهم می‌کند.

انتشار برنامه در گوگل پلی : راهنمای مرحله به مرحله
خواندن این مقاله
قدرت گرفته از افزونه نوشته‌های مرتبط هوشمند

استفاده از Hilt در اکتیویتی‌ها و فرگمنت‌ها

مرحله ۴: مقداردهی وابستگی‌ها با Hilt

در اکتیویتی‌ها و فرگمنت‌ها از @AndroidEntryPoint استفاده کنید:

@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
    
    @Inject
    lateinit var apiService: ApiService

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // حالا می‌توانید از apiService استفاده کنید
    }
}

وابستگی‌های سطح ViewModel

Hilt به‌راحتی از ViewModel نیز پشتیبانی می‌کند. کافی است کلاس ViewModel را با @HiltViewModel مشخص کرده و وابستگی‌های موردنیاز را در سازنده‌ی آن مقداردهی کنید:

@HiltViewModel
class MainViewModel @Inject constructor(
    private val apiService: ApiService
) : ViewModel() {
    
    fun fetchData() {
        // استفاده از apiService برای دریافت داده‌ها
    }
}

و سپس در اکتیویتی:

@AndroidEntryPoint
class MainActivity : AppCompatActivity() {

    private val viewModel: MainViewModel by viewModels()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        viewModel.fetchData()
    }
}

نتیجه‌گیری

با استفاده از Dagger Hilt، وابستگی‌ها در برنامه نویسی اندروید به‌صورت بهینه، خوانا و ساده مدیریت می‌شوند. این ابزار جایگزین بهتری نسبت به Dagger خام است و می‌تواند در پروژه‌های مدرن اندرویدی بسیار مفید باشد.

🚀 حالا شما آماده‌اید که Hilt را در پروژه‌ی خود پیاده‌سازی کنید!

برچسب ها: daggerdagger-hiltکاتلین
قبلی کامپوننت های رابط کاربری اندروید Jetpack
بعدی آموزش unit Test در اندروید

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
دسته‌ها
  • GoLang
  • jetpack compose
  • PHP
  • اپلیکیشن
  • امنیت
  • اندروید
  • اوپن سورس
  • برنامه نویسی
  • برنامه نویسی iOS
  • برنامه نویسی react native
  • پادکست صوتی
  • تکنولوژی
  • جاوا
  • طراح رابط کاربری
  • طراحی رابط کاربری
  • طراحی وب
  • عمومی
  • فریلنسر
  • فلاتر
  • فناوری
  • کاتلین
  • کتاب های آموزشی
  • کسب و کار
  • هوش مصنوعی
  • وردپرس
برچسب‌ها
admob coroutine dagger dagger-hilt jetpack nft rxandroid rxjava spring swift ارز دیجیتال امنیت در اندروید دارت فایربیس فوشیا مصاحبه کاری معماری mvi نقشه راه برنامه نویسی کاتلین گوگل

آکادمی آموزنگار، جایی برای آغاز یک سفر شگفت‌انگیز در دنیای برنامه‌نویسی است. آموزنگار تلاش می‌کند تا هر فردی را از هر سطحی از زندگی و تجربه به دنیای جذاب برنامه‌نویسی وارد کند.

دسترسی سریع
  • درباره ما
  • تماس با ما
  • حریم خصوصی
  • سوالات متداول
نمادها
شبکه های اجتماعی
Facebook Twitter Youtube icon--white Whatsapp

تهران، میدان ولی عصر،خیابان شهیدان سازش،کوچه سوم پلاک 5 طبقه سوم واحد 31

021-88945907

تمامی حقوق برای آکادمی آموزنگار محفوظ می باشد

اشتراک گذاری در شبکه های اجتماعی
ارسال به ایمیل
https://amooznegar.com/?p=11356
ورود
استفاده از شماره تلفن
استفاده از آدرس ایمیل
آیا هنوز عضو نشده اید؟ ثبت نام کنید
بازیابی رمز عبور
استفاده از شماره تلفن
استفاده از آدرس ایمیل
ثبت نام
استفاده از شماره تلفن
استفاده از ایمیل
قبلا عضو شده اید؟ ورود به سیستم
محافظت توسط   
مرورگر شما از HTML5 پشتیبانی نمی کند.

سوالی دارید؟ از ما بپرسید، کارشناسان ما در اسرع وقت با شما تماس می گیرند.

آموزنگار

آکادمی آموزنگار

  • 021-88945907
  • شنبه تا چهارشنبه از ساعت 8 تا 17
  • info@amooznegar.com