فرشته ناجی
فرشته ناجی
خواندن ۲ دقیقه·۳ سال پیش

کُدلَب استفاده از دَگِر در برنامه اندرویدی (2-شروع)

در بخش قبل با مفهوم DI و فریمورک Dagger برای رسیدن به اون آشنا شدید. و توضیح دادیم که اینجا یک کُدلب هست که قراره قدم به قدم روی یک پروژه اندرویدی به زبان کاتلین کار کنید و DI رو در آن پیاده کنید.

در پایان آموزش چه بدست خواهید آورد؟

وقتی کُدلَب تموم بشه شما یک گراف اپلیکیشن تست شده به صورت زیر خواهید داشت:

گراف اپلیکیشن که همه کلاس های اپ و وابستگی هاشونو نشون میده
گراف اپلیکیشن که همه کلاس های اپ و وابستگی هاشونو نشون میده


از ظاهر پیچیده این گراف نگران نشید. این فقط یک تصویر کلی هست که قدم به قدم باهاش آشنا خواهید شد.


کدی که قراره روش کار کنیم رو از این آدرس بگیرید:

$ git clone https://github.com/googlecodelabs/android-dagger

این پروژه گیتهاب رو در اندروید استودیو کلون کنید. با سه تا برنچ مواجه میشید:

  • برنچ Main : برنچ اولیه که باهاش مواجه می‌شید و Manual DI در آن پیاده شده و شما قراره کتابخونه دگر رو بهش اضافه کنید و قدم به قدم به سمت راه‌حل نهایی حرکت کنید
  • برنچ 1_registration_main و 2_subcomponents و 3_dagger_appبرنچ‌های میانی برای رسیدن به راه حل
  • برنچ راه‌حل نهایی کُدلب

حالا کد رو اجرا کنید و ببینید اپ شامل چی هست؟

  • جریان رجیستریشن - Registration flow
  • جریان لاگین - Login flow
  • جریان هوم - Home flow
  • جریان ستینگ - Setting flow

یکم وقت بذارید و با کد و پکیج هاش آشنا بشید:

فلش ها وابستگی های بین آبجکتها رو نشون میدن
فلش ها وابستگی های بین آبجکتها رو نشون میدن


برنامه شامل معماری MVVM هست که در اون پیچیدگی ویوها روی دوش ویو مدل هست. عکس بالا رو ببینید. بالا سمت چپ در مستطیل سبز RegistrationActivity رو ببینید. این اکتیویتی باید ویومدلش که RegisterationViewModel هست رو بسازه. ویو مدل باید UserManager رو بسازه و UserManager باید Storage رو بسازه. این فقط یک خط وابستگی تو برنامه بود که مربوط به جریان Registration هست و ما از همین خط برای جایگیزینی دگر با حالت منوآل شروع می‌کنیم.

می‌خواهیم دگر رو مسئول ساخت گراف برنامه و تزریق وابستگی به فیلدهای تو اکتیویتی هامون کنیم.

افزودن کتابخانه دَگِر به پروژه

فایل app/build.gradle رو باز کنید و دو تا dependency زیر رو اضافه کنید هم‌چنین پلاگین Kapt رو هم بالای فایل اضافه کنید و sync now رو بزنید.

build.gradle
build.gradle


سوال پیش میاد این چیزایی که به فایل گردل اپ اضافه کردیم چین؟

  • دگر با استفاده از مدل انوتیشنی که تو جاوا هست پیاده‌سازی شده
  • و یک پردازنده انوتیشن در زمان کامپایل کدها رو تولید می کنه
  • در کاتلین، پردازنده‌های انوتیشن توسط یک پلاگین کامپایلر به نام kapt پشتیبانی می‌شه
  • این پلاگین چطور فعال میشه؟ با id که اون بالای فایل اضافه کردیم یعنی id 'kotlin-kapt' و id 'kotlin-android-extensions
  • کتابخونه دگر که اضافه کردیم هرچی انوتیشن برای ادامه کار لازم داریم تو خودش داره.
  • یک دونه کامپایلر دگر هم اضافه کردیم که همون پردازنده انوتیشینی هست که کدهای لازم برای تولید گراف برنامه رو تولید می‌کنه اما نگران نباشید این کدها در نهایت در اپ قرار نمی‌گیرن و حجم برنامه رو زیاد نمی‌کنند.



بعدی

کُدلَب استفاده از دَگر در برنامه اندرویدی (3-انوتیشن‌ها)

قبلی

کُدلَب استفاده از دَگر در برنامه اندرویدی(1-معرفی)

تزریق وابستگیdependency injectiondaggerکاتلین
برنامه نویس اندروید @NeshanMap
شاید از این پست‌ها خوشتان بیاید