‫dagger اندروید چه فرقی با دگر معمولی داره ؟

توسعه دهنده‌های کتابخونه Dagger2 هدفشون فقط اندروید نیست و شما میتونید از این کتابخونه توی بک‌اند یا یه برنامه دسکتاپ جاوایی هم استفاده کنید. چون بصورت خاص برای اندروید توسعه داده نشده، برای استفاده در اندروید یه مشکلاتی پیش میاد. البته این مشکلات در واقع مشکلات مفهومی هست، نه اینکه باعث بروز خطا یا … بشه. بطور مثال اکتیویتی‌ها در اندروید توسط فریمورک اندروید ساخته میشن و شما کنترلی روی ساختشون ندارید و برای استفاده از دگر باید توی OnCreate اکتیویتی عملیات injection رو انجام بدید. حالا فرض کنید ما دو کامپوننت به اسم‌های ApplicationComponent و MainActivityComponent داریم که MainActivityComponent یه SubComponent هست. حالا وقتی توی MainActivity بخواید با MainActivityComponent عملیات Injection رو انجام بدید باید داخلش به ApplicationComponent دسترسی داشته باشید تا ازش MainActivityComponent رو بگیرید و دیپندنسی‌هارو Inject کنید. اینکه این کارها توی MainAcitivty انجام میشه باعث اصل قضیه DI نقض بشه، چون MainActivity نباید اصن بدونه دیپندنسی‌ها از کجا و چگونه ساخته میشن.



توسعه دهنده‌های کتابخونه Dagger2 برای رفع این مشکل و آسون‌تر کردن یه سری کارهای دیگه، اومدن یه بخشی به کتابخونه Dagger2 به اسم Dagger Android اضافه کردن که اینا حل بشه. فقط بدیش این بود خودش خیلی پیچیدگی‌ها دیگه به یادگیری Dagger2 اضافه میکرد! الان دیگه Dagger Android منسوخ شده و جاش Hilt اومده.