آموزش جامع Dagger2 در اندروید

مدرس: سینا دالوند

بدون شک Dependency Injection یکی از آشناترین واژه‌ها برای برنامه‌نویسان اندروید و توسعه‌دهندگان زبان‌های شی گراست!

و اگر به بحث‌ها و سوالات رایج گروه‌های اندرویدی توجه کنیم، با جرئت می‌تونیم بگیم سوالاتی پیرامون Dagger یکی از پرتکرارترین سوالات هستن و دلیلشم به خاطر کاربرد مهم و فراگیر اون هست.

در توسعه یک اپلیکشن اندرویدی هرچند ساده، همواره ما درحال تامین وابستگی‌های ابجکت‌های متفاوت هستم؛ از دادن Context به ویوها گرفته تا فراهم کردن Recycler Adapter ، و در تمام مدت شاید بدون اینکه توجه کرده باشیم، داریم به صورت دستی وابستگی‌های متفاوت رو برای هر بخش فراهم میکنیم!

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

اما این سوال مطرح میشه که از کدوم فریمورک باید استفاده کرد؟! مخصوصا طی سال های اخیر تعداد فریمورک های DI روز به روز بیشتر شده !!

با جرئت میشه گفت بهترین انتخاب برای اندروید استفاده از Dagger هست، و دلیل این اطمینان به خاطر توسعه اون توسط گوگل هست (توسعه دهنده اصلی خود اندروید)!

شاید تا الان از افراد مختلف در مورد سختی کار با Dagger چیزای مختلفی شنیده باشید، و این سختی تنها در حالتی رخ میده که از کدهای این فریمورک بدون داشتن درک درست توی پروژه استفاده کرده باشیم که واقعا توی این شرایط با هر تغییر، شرایط بدتر شده و مدیریت کدها به مراتب سخت تر میشه!

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

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

سرفصل‌های دوره Dagger 2

  • Dagger Intro
  • Dependency Problem
  • Dagger Component
  • Type of Injection
  • Modules & Providers
  • Builder & Context
  • Qualifiers
  • Named
  • Android Component Injection
  • Android Application Dagger Component
  • Singleton
  • Custom Scope
  • Sub Component
  • Factory
  • Multibinding
  • Android Injection
  • Android Injection Analytics
  • View Model Injection

 

پیش نیازها

  • آشنایی نسبی با برنامه‌نویسی اندروید (اکتیویتی‌ ها، کلاس اپلیکیشن و موارد پایه)
  • آشنایی با زبان جاوا یا کاتلین 

کلیدواژه: اندروید Android Dependency Injection Dagger Dagger2 دگر2 دگر دپندنسی اینجکشن آموزش دگر کار با دگر کار با dagger dagger 2 اپلیکیشن Component Constructor Injection Field Injection Method Injection Inject @Inject کار با آموزش دگر 2 فارسی Builder in dagger Builder Factory ViewModel Injection Viewmodel in dagger Dagger Android

لیست قسمت های این دوره:
play_circle_filled
۰۰
معرفی
رایگان
play_circle_filled
۰۱
معرفی Dagger 2
رایگان
play_circle_filled
۰۲
مشکلات تامین وابستگی
رایگان
play_circle_filled
۰۳
کار با Component
رایگان
play_circle_filled
۰۴
بررسی انواع Inject
lock ویژه مشترکین
play_circle_filled
۰۵
آشنایی با Module و Provides
lock ویژه مشترکین
play_circle_filled
۰۶
آشنایی با Component.Builder
lock ویژه مشترکین
play_circle_filled
۰۷
آشنایی با Qualifier
lock ویژه مشترکین
play_circle_filled
۰۸
کار با Named
lock ویژه مشترکین
play_circle_filled
۰۹
اینجکت در اکتویتی ها
lock ویژه مشترکین
play_circle_filled
۱۰
کامپوننت و کلاس اپلیکیشن
lock ویژه مشترکین
play_circle_filled
۱۱
آشنایی با Singleton
رایگان
play_circle_filled
۱۲
ایجاد اسکوپ برای کامپوننت‌های متفاوت - قسمت اول
lock ویژه مشترکین
play_circle_filled
۱۳
ایجاد اسکوپ برای کامپوننت‌های متفاوت - قسمت دوم
lock ویژه مشترکین
play_circle_filled
۱۴
استفاده از SubComponenet
lock ویژه مشترکین
play_circle_filled
۱۵
کار با Factory
lock ویژه مشترکین
play_circle_filled
۱۶
مفاهیم پایه Multibinding
lock ویژه مشترکین
play_circle_filled
۱۷
بهبود با Android Support Injection
lock ویژه مشترکین
play_circle_filled
۱۸
بررسی کد های Android Support Injection
lock ویژه مشترکین
play_circle_filled
۱۹
اینجکت در ViewModel - قسمت اول
lock ویژه مشترکین
play_circle_filled
۲۰
اینجکت در ViewModel - قسمت دوم
lock ویژه مشترکین
دیدگاه ها:
۵ ماه قبل
reply
سلام
این همون دوره ایی هست که من بسیار منتظرش بودم... لطفا بفرمائید کی کامل میشه دوره و سوال بعدی اینکه آیا تولید دوره هایی مثل معماری MVP, MVVM و RxAndroid و multi threading و غیره رو در نظر دارید یا خیر
ممنون
پشتیبانی آرکادمی
۵ ماه قبل در پاسخ به jamdar.it
reply
درود. از 22 دی ماه تا پایان ماه این دوره تکمیل خواهد شد و تا تنها پایان 21 دی ماه امکان تهیه این دوره با تخفیف ویژه پیش‌فروش مهیا خواهد بود.
sepehrtabeian
مشترک دوره
۳ ماه قبل
reply
از آرکادمی بعید بود که با این کیفیت ویدئوها رو آپلود کنه!!!
کیفیت ویدئوها بشدت پایینه.
من باید بعد دانلود 650مگ تازه متوجه این موضوع بشم !!!؟؟؟؟؟؟؟
واقعا که........
پشتیبانی آرکادمی
۳ ماه قبل در پاسخ به sepehrtabeian
reply
درود و وقت بخیر. ویدیوها با کیفیت 1080 آپلود شدند و تا به حال از دوستان شرکت کننده کسی مشکل مشابهی گزارش نکرده. درصورت امکان لطفا مشکل را شرح بدهید و اسکرین شات از کیفیت ویدیو ارسال بفرمایید.
atieh.asgari
مشترک دوره
۲ ماه قبل
reply
سلام. من چند سری از فیلمهای شما رو دانلود کردم و راضی بودم. اما این سری واقعا کدها در فیلم مشخص نیستن. ای کاش کمی فونت ها رو بزرگتر می کردید. خیلی جاها رو نمیشه تشخیص داد و خریدش فایده ای برای من نداشته.
پشتیبانی آرکادمی
۲ ماه قبل در پاسخ به atieh.asgari
reply
درود و وقت بخیر. تمام ویدیوهای این دوره را به زودی با تدوین بهتری ادیت و مجددا آپلود خواهیم کرد و سعی می‌کنیم به نحوی تدوین شود تا حداکثر خوانایی ممکن را بتوانیم ایجاد کنیم. متاسفانه ویدیوها ضبط شده هستند و امکان تغییر سایز فونت و ... وجود ندارند. اما تا پایان فروردین ماه نسخه بهبود یافته‌ای از ویدیوها را منتشر و اطلاع‌رسانی خواهیم کرد. این تاخیر نیز بدلیل زمانبر بودن تدوین و رندرگیری مجدد ویدیوها است. موفق و پیروز باشید
hewillc0me
مشترک دوره
۲ ماه قبل
reply
سلام. اول از همه تشکر از آموزشتون.
یه نکته ای که خوبه توی آموزش ها رعایت کنید اینه که سایز فونت editor باید به گونه ای باشه که برای کاربر کاملا خوانا باشه. در صورتی که برای این آموزش این چنین نبود.
اگر سایز فونت دو الی سه شماره بزرگ تر بود خیلی خوب بود.
پشتیبانی آرکادمی
۲ ماه قبل در پاسخ به hewillc0me
reply
درود. به زودی ویدیوهای این دوره با تدوینی جدید جایگزین خواهند شد که کاملا مشکل ناخوانایی متون برطرف خواهد شد. اطلاع رسانی جایگزینی ویدیوها از طریق ایمیل انجام خواهد شد. از شکیبایی شما سپاسگزاریم. موفق باشید
hewillc0me
مشترک دوره
۲ ماه قبل در پاسخ به پشتیبانی آرکادمی
reply
ببخشید خب میشه به جای اینکه یک جا آپلود کنید هر جلسه ای که درست می کنید رو بذارید؟ الان که تعطیلات عید هست و کرونا مطرح شده فرصت خیلی خوبی ما برای یادگیری داریم. حیفه که این فرصت رو از دست بدیم. صادقانه بگم علت خرید این دوره هم همین فرصتی است که برای یادگیری پیدا کردیم. لطف کنید اگر میشه هر قسمتی که درست میشه رو درج کنید و اینکه یه زمان تخمینی برای درج اولین قسمت اگر بگید ممنون میشم.
پشتیبانی آرکادمی
۲ ماه قبل در پاسخ به hewillc0me
reply
بله حتما تلاش میکنیم تا به این شکل ویدیوها را بروزرسانی کنیم. یقینا از هفته آینده روند بروزرسانی ویدیوها را آغاز خواهیم کرد. از صبرتون عمیقا سپاسگزاریم
۲ ماه قبل در پاسخ به hewillc0me
reply
سلام دوست عزیز

بله کاملا حق با شماست ، با توجه به بازخوردی که توی این دوره از کیفیت متون توی ویدیو ها دریافت شد ، علاوه بر سعی در تصحیح کیفیت این دوره و انتشار مجدد اون، در دوره های اینده ،ویدیو ها با زمینه سفید رنگ و فونتی درشت تر ضبط میشن !
reza.sharafatpour
مشترک دوره
۲ ماه قبل
reply
سلام میخواستم بدونم چطور multibinding میشود پارامتر به viewModel ارسال کرد
۲ ماه قبل در پاسخ به reza.sharafatpour
reply
با عرض سلام و درود

این موضوع مربوط به دو جلسه اخر هست که کامل مطرح شده و شیوه کارکردش هم با جزئیات مورد بررسی قرار گرفته ، اما با این حال درصورت وجود ابهام یا سوال ، توی تلگرام با ای دی @logandlv در خدمتتون هستم.
۲ ماه قبل
reply
سلام ممنون بابت اموزش های خوبتون
الان عید ممنون میشم یه تخفیفی برای دوره هاتون بزارید که بتونیم خریداری کنیم
با تشکر
پشتیبانی آرکادمی
۲ ماه قبل در پاسخ به mohamad.ansari8
reply
درود. جشنواره تخفیف‌های نوروزی آرکادمی اخیرا به اتمام رسیده. جهت دریافت کد تخفیف لطفا به اکانت پشتیبانی آرکادمی در تلگرام پیامی ارسال بفرمایید.
javadssmh
مشترک دوره
۲ ماه قبل
reply
سلام چرا توو اندروید استدیو من فایل DaggerArcademyComponent تشکیل نمیشه؟
در واقع قبل و بعد از build کردن تفاوتی ایجاد نمیشه !!
javadssmh
مشترک دوره
۲ ماه قبل در پاسخ به javadssmh
reply
با این لینک درست شد :
https://stackoverflow.com/questions/43756498/dagger-2-component-not-generated
ارسال دیدگاه:
برای ارسال دیگاه باید به سیستم وارد شوید و یا ثبت نام کنید. ثبت نام چند لحظه بیشتر زمان شما را نمیگیرد.