آموزش تزریق وابستگی با Hilt در اندروید، اگر برنامه نویس و یا توسعه دهنده اندروید باشید تکنیک Dependency Injection و یا تزریق وابستگی بحث مهمی است که در این دوره به شکل کامل با استفاده از Hilt آن را به شما آموزش می دهیم
اگر برنامه نویس غیر مبتدی هستید مطمعاناً در پروژه ها، آگهی های استخدام ،گروه ها و جوامع برنامه نویسی با اصطلاح و تکنیک Dependency Injection(تزریق وابستگیDI-) روبرو شدید !پس میشه گفت از اهمیت اون اطلاع دارید یا حداقل تا الان متوجه شدید که قرار موضوع مهمی باشه. اما متاسفانه تو خیلی از بحث ها ، DI رو به عنوان موضوع خیلی سخت و پیچیده نگاه میکنن ، شاید بشه بهشون حق داد اما نمیشه گفت درسته! این پیچیدگی که برای افراد به وجود امده رو میشه از معلول های عدم وجود منابع کافی و جامع به زبان فارسی در مورد این موضوع عنوان کرد.
اما اگر تا حالا اصطلاح تزریق وابستگی (DI) به گوشتون نخورده باید بگم که توی پروژه های کوچیک و اللخصوص بزرگ کاربرد زیادی داره و هدفش راحت تر کردن ریفکتور کردن کد و مدیریت آبجکت هاست ، البته برا توضیحات بیشتر و بهتر می تونید تزریق وابستگی(دپندنسی اینجکشن) رو گوگل کنید و نتایج مفیدی براتون پیدا میشه که اگه با این موضوع آشنایی کافی ندارید لازمه حتما مطالعه اولیه ای داشته باشید ، با این حال توی دو قسمت اول دوره به توضیح جزئیات و فواید دپندنسی اینجکشن پرداخته شده که حتی درصورت واضح نبودن موضوع بعد از مطالعه ، انتظار میره بعد از مشاهده دو ویدیو اول درک موضوع براتون راحت تر بشه.
حالا که میدونیم تزریق وابستگی چی هست و قرار چه کارایی کنه ، در این بین باید گفت با اینکه میشه این تکنیک رو به صورت کاملا دستی توی پروژه پیاده سازی کرد ولی ابزار و کتابخونه هایی هم برای ما وجود داره که بخش زیادی از این فرایند ها رو به صورت خودکار برای ما انجام میده و پیاده سازی میکنه که در این شرایط عقل حکم میکنه بجای بازنویسی کد ها ، به ماشین اجازه بدیم که خودش بخش هایی که میتونه بدون نقص برامون انجام بده و پیاده سازی کنه و خودمون رو درگیر جزئیات تکراری نکنیم ، دقیقا تو همین نقطه کتابخونه ها و فریمورک های Dependency Injection وارد میدون میشن!
در بین کتابخونه ها و فریمورک های مختلفی که برای بحث DI در اندروید وجود داره تقریبا میشه Hilt رو به عنوان پر استفاده ترینشون معرفی کرد ، دلیلشم توسعه و پشتیبانی اون توسط گوگل هست ، اما ابزار دیگه ای هم مثل Koin و یا Dagger وجود داره که Hilt رو بنا به دلایلی میشه تقریبا برتر دونست.
همونطور که در قسمت قبل گفتیم ابزار دیگه ای بجز Hilt وجود دارن که میشه از اونا هم برای بحث DI در اندروید استفاده کرد ، اما برتری که Hilt نسبت به سایر اونها داره به طور خلاصه میشه گفت یک لول بالای Dagger ساخته شده به این معنی که علاوه بر اینکه از ویژگی و شیوه های 2Dagger استفاده کرده ، خودش رو بیشتر و بیشتر با فریمورک اندروید سازگار کرده ، از اون سمت هم نسبت به Koin برتری که داره محدود به یک مورد نمیشه ، چون علاوه بر ساپرت زبان کاتلین ، از زبون جاوا هم پشتیبانی میکنه و همچنین امکان تشخیص خطا رو در زمان کامپایل فراهم کرده!
و به عنوان کلام آخر هم قابل ذکر هست که خود گوگل Hilt رو به توسعه دهنده های اندروید پیشنهاد کرده ، اما یادتون باشه که این فقط یک پیشنهاد هست و نباید مانع کنجکاوی و اشتیاق شما برای یادگیری سایر ابزار بشه.
از اونجایی که موضوع خیلی مبتدی نیست ، انتظار میره دانشجو های عزیز ، پیش نیاز های زیر رو داشته باشن:
در این فصل با مفاهیم پایه بحث تزریق وابستگی آشنا می شویم و چرایی به وجود آمدن این موضوع به طور کلی بررسی میکنیم ، همچنین در این فصل سعی شده انواع تکنیک های بحث DI را مطرح کرده و در مورد مزایا و معایب هرکدام به طور جداگانه صحبت کنیم.
این فصل رو با بیتی از سعدی شروع میکنم که میگه "نداند کسی قدر روز خوشی مگر روزی افتد به سخت کشی" که هدف منم اینه ، قبل اینکه بخواهیم از نعمت کتابخونه های DI بهرمند بشیم ، یکبار خودمون مراحلی که قراره توسط اونا انجام بشه رو بر روی یک پروژه واعی ساده به صورت دستی انجام بدیم که نه تنها قدر اونا رو بدونیم بلکه درک عمیقی هم نسبت به عملیات های پس زمینه ای که قراره در آینده با اونا روبرو بشیم پیدا کنیم.
در این فصل به طور تخصصی در رابطه با کتابخونه Hilt صحبت میکنم و سعی میکنم علاوه بر توضیح تئوری ویژگی ها و مثال های ساده ذکر شده، بررسی کنیم که در یک پروژه واقعی چطور میشه از همین ویژگی ها استفاده کرد و پروژه رو به طور کامل راه اندازی کرد.
اگه جز برنامه نویس های کنجکاو باشید ، مطمعانا با کتابخونه های Jetpack که چندسالی میشه که خیلی ترند شدن آشنایی دارید و میدونیم که هرجا کلاسی باشه ، احتمالا دپندنسی هم وجود داره ، پس در این فصل قرار بر روی این کتابخونه ها متمرکز بشیم و بررسی کنیم که به چه شکلی میتونیم برای کلاس های متفاوت این کتابخونه ها ، وابستگی ها رو فراهم کنیم.
زبان انتخاب شده در این دوره با توجه به گرایش کامیونیتی اندروید به سمت کاتلین سعی شده زبان کاتلین انتخاب بشه، اما از اونجایی که از ویژگی خاصی از زبان کاتلین استفاده نشده و تفاوتی بین دو زبان در شیوه استفاده اونها در Hilt نیست، دوستانی که فقط به زبان جاوا تسلط دارند هم میتونن به راحتی متوجه چگونگی استفاده بشن
اصراری برای دسته بندی مخاطبهای دوره وجود نداره و هرکسی که فکر میکنه تکنیک و کتابخونه آموزش داده شده در پروژههاش میتونه کاربرد داشته باشه و مشکلی با درک مفهوم DI نداره به راحتی میتونه این دوره رو ببینه و درک کنه و از اون استفاده کنه.
جواب این سوال خیر هست! چون شما باید دائما در حال یادگیری مباحث جدید باشید و سعی کنید تا جای ممکن بعد از یاد گرفتن یک موضوع یک پروژه هرچند کوچک با اون پیادهسازی کنید و همچنین code review فراموش نشه!
همونطور که میدونیم code review یکی از اصلهای اساسی در توسعه دانش برنامه نویسی هست و شما هم اگر جزو اون دسته از افراد کنجکاوی هستید که مایلید کدهای مختلف افراد رو ببینید و از اونها یاد بگیرید، توصیه میشه در سایت github عبارتHilt یا Hilt sample code رو سرچ کنید و از خوندن کدهای بقیه لذت ببرید!
سینا دالوند هستم، کارشناس نرم افزار و بیش از 7 سال تجربه کار در حوزه برنامه نویسی و توسعه نرم افزار دارم. از سال 96 تمرکزم رو به صورت کاملا تخصصی معطوف اندروید کردم و طی چند سال گذشته تجربه کار بر روی پروژه های مختلفی از جمله اپلیکیشن اندروید وبسایت...
شما میتوانید مطالب مرتبط به این مطلب را اینجا مشاهده کنید
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید