Dagger2 هي إطار عمل (Framework) يساعد على إدارة تبعيات التطبيق وحقن الإعتماديات (Dependency Injection) بشكل آمن وبسيط. سوف نتعلم في هذه السطور كيفية استخدام هذه الإطار في تطبيق الـ Kotlin.
1. إعدادات حزمة المكتبة (Dagger2 library package) في build.gradle
“`
dependencies {
implementation ‘com.google.dagger:dagger:VERSION_NUMBER’
annotationProcessor ‘com.google.dagger:dagger-compiler:VERSION_NUMBER’
}
“`
2. إنشاء الـ module الخاصة بتوليد تبعيات التطبيق:
“`
@Module
class DatabaseModule {
@Provides
fun providesDatabase(): MyDatabase {
// return instance
}
}
“`
3. إنشاء المكون الجذري (Root Component) وتحديد الإعتماديات الخاصة به:
“`
// A Root component.
@Component(modules = [DatabaseModule::class])
interface AppComponent {
fun inject(activity: MyActivity)
// And other dependencies your app might need
}
“`
4. إنشاء كائن الحاوية الرئيسي (Main Container) وتهيئته في التطبيق الخاص بك:
“`
class MyApplication : Application() {
lateinit var appComponent: AppComponent
override fun onCreate() {
super.onCreate()
// Dagger Component initialization
appComponent = DaggerAppComponent.builder()
.databaseModule(DatabaseModule())
.build()
}
}
“`
5. الآن يمكنك إستخدام مكتبة Dagger2 كحاوية لإدارة تبعيات التطبيق:
“`
class MyActivity : AppCompatActivity() {
@Inject lateinit var myDatabase: MyDatabase
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
(application as MyApplication)
.appComponent
.inject(this)
}
}
“`
ستلاحظ أن Dagger2 تأخد عناء إدارة تبعيات المشروع، حتى تتمكن من التركيز على تصميم المشروع وتطويره بشكل أفضل.