آموزش تزریق وابستگی با Hilt در اندروید

قیمت دوره 190,000 تومان
وضعیت دوره به زودی
نوع دسترسی نقدی

این دوره در برنامه ضبط قرار دارد و به زودی جلسات آن در سایت قرار خواهد گرفت.

اگر برنامه نویس  و یا توسعه دهنده غیرمبتدی هستید به احتمال  خیلی زیاد با اصطلاح و تکنیک Dependency Injection و یا تزریق وابستگی آشنایی دارید پس میشه گفت از اهمیت اون اطلاع دارید و می دونید تسلط به مفاهیم DI می‌تونه در مصاحبه های کاری براتون یه برگ برنده باشه و یکی از مفاهیمیه که هر توسعه دهنده سنیور یا ارشدی باید بهش مسلط باشه. اما متاسفانه در خیلی از بحث ها، DI به دید یک موضوع خیلی سخت و پیچیده دیده میشه! شاید بشه بهشون حق داد اما نمیشه گفت درسته! این پیچیدگی که برای افراد به وجود امده رو میشه از معلول‌های عدم وجود منابع کافی و جامع به زبان فارسی در مورد این موضوع عنوان کرد.

اما اگر تا به حال اصطلاح تزریق وابستگی (DI) به گوشتون نخورده باید بگم که در پروژه های کوچک و اللخصوص بزرگ کاربرد زیادی داره و بهمون کمک می کنه پروژه‌ای رو پیاده سازی کنیم که توسعه پذیرتر، تست پذیرتر و با قابلیت ریفکتور شدن و همچنین نگهداری بالاتری باشه و بتونیم خیلی بهتر و اصولی‌تر آبجکت‌ها رو مدیریت کنیم! البته برای توضیحات بیشتر و بهتر می تونید تزریق وابستگی(دپندنسی اینجکشن) رو گوگل کنید و نتایج مفیدی براتون پیدا میشه که اگر با این موضوع آشنایی کافی ندارید لازمه حتما مطالعه اولیه ای داشته باشید، با این حال در دو قسمت اول این دوره به توضیح جزئیات و مزیت‌های تزریق وابستگی پرداخته شده که حتی در صورت واضح نبودن موضوع بعد از مطالعه، انتظار میره بعد از مشاهده این دو اپیزود درک موضوع براتون راحت تر بشه پس نگران چیزی نباشید!

Hilt چیست؟

حالا که می‌دونیم تزریق وابستگی چیه و قراره چه کارایی کنه، در این بین باید گفت با اینکه میشه این تکنیک رو به صورت کاملا دستی در پروژه پیاده سازی کرد ولی ابزار، کتابخونه و فریمورک‌هایی هم وجود دارند که بخش زیادی از این فرایند ها رو به صورت خودکار برای ما انجام میدن که در این شرایط عقل حکم میکنه به جای بازنویسی کدها، به این ابزار اجازه بدیم کار ما رو حسابی راحت‌تر کنن و خودمون رو درگیر جزئیات تکراری نکنیم و دقیقا در همین نقطه هست که کتابخونه ها و فریمورک‌های Dependency Injection  وارد میدون میشن!

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

چرا  Hilt ؟ Hilt‌ در برابر Dagger !

همونطور که گفتیم ابزارهای دیگه ای به جز Hilt  وجود دارن که میشه از اونا هم برای بحث  DIدر اندروید استفاده کرد، به عنوان مثال بعید می‌دونیم کمتر اندروید دولوپری باشه که Dagger‌ رو نشناسه و خب تا قبل از معرفی Hilt میشه گفت Dagger حرف اول رو میزد و پادشاهی می‌کرد اما هر توسعه دهنده‌ی اندرویدی که با Dagger‌ کار کرده باشه بدون شک در جریان سختی‌ها و پیچیدگی‌هاش هست و خب شاید بشه گفت یکی از جذاب ترین دلایل محبوبیت Hilt‌ اینه که در لایه‌ی بالایی Dagger قرار گرفته و در واقع Dagger‌ زیرلایه‌ی Hilt هست به این معنا که علاوه بر اینکه از ویژگی و شیوه های Dagger 2 استفاده کرده، خودش رو هرچه بیشتر با فریمورک اندروید سازگار کرده.

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

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

لزوم یادگیری Hilt  و تماشای این دوره چیست؟

فرایند ساخت یک اپلیکیشن اندرویدی رو همین الان توی ذهنتون تصور کنید. می‌بینید که شما دائما در حال تامین وابستگی هستید و این وابستگی ها ممکنه در بعضی شرایط خیلی تو در تو و پیچیده بشه! اما ساده‌ترین مثالش میشه فراهم کردنcontext  برای یک کلاس، یا حتی فراهم کردن یک آداپتر برای ریسایکلر ویو در نظر گرفت. حالا شما دیدتون رو وسیع‌تر کنید و پروژه رو بزرگتر در نظر بگیرید و فرض کنید یک کلاس یا چندین کلاس دارید که در تعداد زیادی کلاس و یا بخش دیگه از اونها استفاده شده!

حالا به هر دلیلی مجبور می‌شید که بخشی از اون کلاس‌ها رو تغییر بدید و وابستگی‌های اونها رو دستکاری کنید! در این صورت احتمالا می‌تونید تصور کنید که چه فاجعه‌ای پیش میاد و چقدر کد هست که باید اونها رو هم تغییر بدید!

یک مثال دیگه میتونه مربوط به مدیریت نمونه ساخته شده از یک کلاس باشه. زمانی که شما بخواید اون نمونه تنها در محدوده خاصی از برنامه در دسترس باشه و از ساختن چندین و چند نمونه اضافه از یک کلاس خودداری کنید، در این شرایط بهترین راه حل این مشکلات چیزی نیست جز DI و فریمورک ها و کتابخونه های مربوط به اون ...

پیش نیاز های دوره

از اونجایی که موضوع دوره خیلی مبتدی نیست و در سطح نسبتا پیشرفته‌ای قرار داره، انتظار میره دانشجوهای عزیز، پیش نیاز های زیر رو داشته باشند:

  1. آشنایی مقدماتی با برنامه نویسی اندروید
  2. تسلط به یکی از زبان های Java  یا kotlin (ترجیجا کاتلین چون دوره با کاتلین آموزش داده شده)
  3. اشتیاق یادگیری با چاشنی کنجکاوی

سر فصل ها

وابستگی ها و مشکلات آن

  1. وابستگی چیست؟
  2. مشکلاتی که وابستگی ایجاد می کنید چیست؟

شروع کار با Hilt

  1. بررسی Hilt  و اضافه کردن آن به پروژه
  2. تزریق وابستگی به کلاس های اندروید
  3. تهیه نمونه از یک کلاس داخلی برای تزریق
  4. ماژول ها در Hilt
  5. تزریق Interface  با استفاده از Bind
  6. تهیه نمونه از یک کلاس خارجی برای تزریق

Qualifiers

  1. Qualifiers  های پیشفرض
  2. تمیز دو نمونه با Qualifierها

Component

  1. کامپوننت چیست؟
  2. بررسی ویژگی کامپوننت های Hilt
  3. بررسی @Installin در ماژول ها
  4. چند کامپوننتی در Module

Architecture Components

  1. تزریق وابستگی در ViewModel
  2. اسکوپ در ViewModel
  3. ویومدل مشترک در Navigation Graph
  4. تزریق WorkManager  در Hilt

EntryPoint

  1. ساخت EntryPoint برا کلاس های جانبی
  2. کامپوننت های کاستوم

معماری ماژولار

  1. استفاده از Hilt در معماری Modular

View Injection

  1. تزریق وابستگی در View
مشاهده ادامه مطلب

سوالات متداول

زبان برنامه نویسی مورد استفاده در دوره چیه؟

زبان انتخاب شده در این دوره با توجه به گرایش کامیونیتی اندروید به سمت کاتلین سعی شده زبان کاتلین انتخاب بشه، اما از اونجایی که از ویژگی خاصی از زبان کاتلین استفاده نشده و تفاوتی بین دو زبان در شیوه استفاده اونها در Hilt  نیست، دوستانی که فقط به زبان جاوا تسلط دارند هم میتونن به راحتی متوجه چگونگی استفاده بشن

آیا این دوره صرفا برای افراد با تجربه هست؟

اصراری برای دسته بندی مخاطب‌های دوره وجود نداره و هرکسی که فکر می‌کنه تکنیک و کتابخونه آموزش داده شده در پروژه‌هاش می‌تونه کاربرد داشته باشه و مشکلی با درک مفهوم DI  نداره به راحتی می‌تونه این دوره رو ببینه و درک کنه و از اون استفاده کنه.

آیا دیدن این دوره برای تسلط به Hilt کافیه؟

جواب این سوال خیر هست! چون شما باید دائما در حال یادگیری مباحث جدید باشید و سعی کنید تا جای ممکن بعد از یاد گرفتن یک موضوع یک پروژه هرچند کوچک با اون پیاده‌سازی کنید و همچنین code review فراموش نشه!

چطور میشه نمونه کد‌های بیشتری در رابطه با این موضوع دید؟

همونطور که می‌دونیم code review  یکی از اصل‌های اساسی در توسعه دانش برنامه نویسی هست و شما هم اگر جزو اون دسته از افراد کنجکاوی هستید که مایلید کدهای مختلف افراد رو ببینید و از اونها یاد بگیرید، توصیه میشه در سایت github  عبارتHilt   یا Hilt sample code رو سرچ کنید و از خوندن کدهای بقیه لذت ببرید!

گارانتی بازگشت وجه

برای آنکه به شما اطمینان دهیم، که ما از محتوای دوره‌های خود ۱۰۰ درصد مطمئن هستیم، برای این دوره گارانتی بازگشت وجه قرار داده‌ایم و این به این معنی است که اگر شما محتوای این دوره را به شکل کامل مشاهده کنید، اما نتیجه‌ای که به شما قول دادیم را دریافت نکنید ۱۰۰ درصد مبلغ پرداختی شما را برگشت خواهیم زد.

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

مراحل گارانتی بازگشت وجه
۱
تهیه دوره از راکت
۲
مشاهده کامل دوره و انجام دادن تمرین‌ها
۳
در صورت عدم رضایت در پایان تنها کافیه که با ما تماس بگیرید
۴
بازگشت وجه به شما
گواهی پایان دوره
گواهی پایان دوره (گواهی مشاهده آنلاین)
دوره را به شکل آنلاین و کامل مشاهده کنید.
این گواهی رایگان است و تنها با مشاهده کامل دوره برای شما فعال می‌شود.

توجه مهم : در صورتی که نیاز دارید توضیحات بیشتری در مورد گواهی پایان دوره راکت کسب کنید، وارد صفحه "گواهی پایان دوره راکت چیست؟" شوید، توضیحات تکمیلی در این صفحه وجود دارد که برای درک بهتر گواهی پایان دوره به شما کمک خواهد کرد.

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

دیدگاه‌ها و پرسش‌ها

برای ارسال دیدگاه لازم است، ابتدا وارد سایت شوید.

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

قیمت دوره 190,000 تومان
وضعیت دوره به زودی
نوع دسترسی نقدی

این دوره در برنامه ضبط قرار دارد و به زودی جلسات آن در سایت قرار خواهد گرفت.
آفلاین
user-avatar
مدرس دوره سینا دالوند

سینا دالوند هستم،‌ کارشناس نرم افزار و بیش از 7 سال تجربه کار در حوزه برنامه نویسی و توسعه نرم افزار دارم. از سال 96 تمرکزم رو به صورت کاملا تخصصی معطوف اندروید کردم و طی چند سال گذشته تجربه کار بر رو...

مشاهده پروفایل سینا دالوند

گفتگو‌ برنامه نویسان

بخشی برای حل مشکلات برنامه‌نویسی و مباحث پیرامون آن وارد شو

دوره‌های پیشنهادی

آموزش انگولار

در دوره آموزش انگولار ما سعی داریم به شما کمک کنیم angular را ساده و قدم به قدم به شکل کامل و با جزئیات یاد بگیرید.

آموزش composer

در آموزش composer شما یاد میگیرید که از composer در یک پروژه واقعی PHP به چه شکلی استفاده کنید. با composer شما می‌توانید از حجم زیادی پکیج استفاده کن...

آموزش پروژه محور React Native

در طی دوره آموزش react native به شکل پروژه‌ محور و کامل این فریمورک react را به شما آموزش خواهم داد تا بتوانید با استفاده از آن اپلیکیشن خود را بسازید...

آموزش ایجاد وبسایت PWA یا Progressive Web Apps

در طول دوره آموزش pwa یا همان Progressive Web Apps ما سعی داریم روش قابل دسترس کردن وبسایت‌ها را در تلفن همراه را به شما آموزش دهیم.

آموزش احراز هویت در لاراول

آموزش احراز هویت در لاراول سعی دارد به شما روش کار با پکیج های مختلف و رسمی لاراول را به شکل کامل آموزش دهد تا شما بتوانید در پروژه های بعدی خود احرا...

آموزش Flutter

در طول دوره فلاتر (flutter) قصد داریم روش استفاده از این ابزار برای ایجاد کردن اپلیکیشن‌های موبایلی را به شکل کامل و جامع در قالب پروژه به شما آموزش د...