در بخش قبل با مفهوم DI و فریمورک Dagger برای رسیدن به اون آشنا شدید. و توضیح دادیم که اینجا یک کُدلب هست که قراره قدم به قدم روی یک پروژه اندرویدی به زبان کاتلین کار کنید و DI رو در آن پیاده کنید.
وقتی کُدلَب تموم بشه شما یک گراف اپلیکیشن تست شده به صورت زیر خواهید داشت:
از ظاهر پیچیده این گراف نگران نشید. این فقط یک تصویر کلی هست که قدم به قدم باهاش آشنا خواهید شد.
کدی که قراره روش کار کنیم رو از این آدرس بگیرید:
$ git clone https://github.com/googlecodelabs/android-dagger
این پروژه گیتهاب رو در اندروید استودیو کلون کنید. با سه تا برنچ مواجه میشید:
1_registration_main و 2_subcomponents و 3_dagger_app
برنچهای میانی برای رسیدن به راه حلحالا کد رو اجرا کنید و ببینید اپ شامل چی هست؟
یکم وقت بذارید و با کد و پکیج هاش آشنا بشید:
برنامه شامل معماری MVVM هست که در اون پیچیدگی ویوها روی دوش ویو مدل هست. عکس بالا رو ببینید. بالا سمت چپ در مستطیل سبز RegistrationActivity رو ببینید. این اکتیویتی باید ویومدلش که RegisterationViewModel هست رو بسازه. ویو مدل باید UserManager رو بسازه و UserManager باید Storage رو بسازه. این فقط یک خط وابستگی تو برنامه بود که مربوط به جریان Registration هست و ما از همین خط برای جایگیزینی دگر با حالت منوآل شروع میکنیم.
میخواهیم دگر رو مسئول ساخت گراف برنامه و تزریق وابستگی به فیلدهای تو اکتیویتی هامون کنیم.
فایل app/build.gradle
رو باز کنید و دو تا dependency زیر رو اضافه کنید همچنین پلاگین Kapt رو هم بالای فایل اضافه کنید و sync now رو بزنید.
سوال پیش میاد این چیزایی که به فایل گردل اپ اضافه کردیم چین؟
id 'kotlin-kapt' و id 'kotlin-android-extensions
کُدلَب استفاده از دَگر در برنامه اندرویدی (3-انوتیشنها)