یکی از چالشهایی که هر برنامهنویس زمان طراحی اپلیکیشنهای بزرگ با آن مواجه میشود پیچیده شدن کدهای نرمافزار است. همچنین مدیریت ساده بودن و خوانایی کد هم خیلی برای برنامهنویس مهمه یعنی در عین پیچیدگی،کدها باید خوانا و قابلگسترش باشند.منظور از پیچیدگی یعنی این که اپلیکیشن ما چندین فیچر بزرگ داشته باشد.
اگر دنبال یادگیری DependencyInjection هستید پس از اهمیت این موضع مطلع هستید. البته DI یک مبحث سخت به نظر میرسد ولی با استفاده از این دوره میتوانید بهراحتی DependencyInjection را یاد بگیرید.
مبحث بعدی که در این دوره به آن میپردازیم Coroutine هست. زبان kotlin یک رویکرد پیشرفته از برنامهنویسی همزمان را در coroutine معرفی کرد. در اندروید برای ساده کردن کارهای async از coroutine استفاده میشود. یک قابلیت خیلی خوب coroutine این است که میتوانیم آن را تعلیق کنیم و هرزمان که خواستیم دوباره از سر بگیریم پس به ما این امکان را می دهد که کارهای طولانیمدت را تدریجی انجام دهیم.
در فصل اول این دوره تزریق وابستگی با استفاده از Hilt را آموزش میدهم .
-
تزریق وابستگی با Hilt
در طراحی نرمافزار و استفاده از برنامهنویسی شی گرا، تزریق وابستگی فرایند تأمین منبعی است که یک قطعه کد تعیین شده به این نیاز دارد. به منبع مورد نیاز که اغلب جزء خود برنامه است، وابستگی می گوییم.
موقعی که یک قسمتِ نرمافزار برای تکمیل هدف مورد نظرش به منابع دیگر وابسته است، باید بداند که با کدام منابع ارتباط برقرار کند و آنها را کجا قرار دهد و چطوری با آنها ارتباط برقرار کند.
یکی از راههای ساختاردهی کد، این است که یک مکان برای هر منبع در نظر بگیریم. راه دیگر اینکه از تزریق وابستگی استفاده کنیم و یک قطعه کد خارجی مسئول مکانیابی منابع است.
در فصل دوم تکنولوژی محبوب Coroutine را آموزش میدهم.
-
استفاده از Coroutine
برنامهنویسی ناهمزمان (Asynchronous) در این نوع برنامهنویسی ما چندین عملیات را با هم شروع میکنیم و زمان اتمام این عملیات ها با هم متفاوت است و ممکن است با همان ترتیبی که شروع کردیم تمام نشوند.
برنامهنویسی همزمان (Synchronous) چیست؟
در این نوع برنامهنویسی همه درخواستها پشتسرهم اجرا میشوند و تا زمانی که درخواست اول به پایان نرسد درخواست دوم اجرا نمیشود و همین روند تا آخرین درخواست ادامه دارد.
یک مثال در دنیای واقعی برای برنامهنویسی :
پختن غذا را در نظر بگیرید. اول قابلمه برنج رو که با آب پر شده روی گاز میگذاریم و گاز رو روشن میکنیم همزمان با فرایند پختهشدن برنج سیبزمینیها رو سرخ میکنیم بعد که آب برنج جوش آمد برنج رو آبکش میکنیم و دوباره با قابلمه آن را روی گاز میگذاریم روی گاز تا دم بکشد و همزمان با دم کشیدن برنج سالاد هم درست میکنیم. پس اگر ما بخواهیم این کارها رو پشتسرهم انجام بدهیم شاید چند ساعت طول بکشد ولی همزمان در عرض 30 دقیقه همه کارها انجام میشوند. کامپیوتر و موبایل هم در انجام کارها مثل انسان رفتار میکنند مثلاً ما در اپلیکیشن ثبتنام میکنیم و بعد از آن چند تا عکس آپلود میکنیم بعد از ارسال منتظر نمیمانیم که جواب رو به ما برگرداند و همزمان کارهای دیگر رو هم انجام میدهیم. یا مثلاً داریم لیست کالاها رو از سرور میگیریم. منتظر نمیمانیم که کل دیتاها رو بگیرد بعد بریم سراغ کار بعدی. همزمان با گرفتن لیست کالاها لیست دستهبندیها رو هم میگیریم.
برای برنامهنویسی ناهمزمان در اندروید از Coroutine استفاده میکنیم که انجام کارها رو خیلی برای ما راحتتر میکند و برای برنامهنویسی اندروید خیلی کاربردی است.
در فصل سوم یک پروژه سبک داریم که لیست اخبار را از سرور میگیرد و همچنین امکان جستجوی اخبار را هم دارد. در این پروژه از Hilt و Coroutine به همراه معماری MVVM و همچنین navigationComponent استفاده میکنیم.
در فصل سوم یک پروژه سبک داریم که لیست اخبار را از سرور میگیرد و همچنین امکان جستجوی اخبار را هم دارد. در این پروژه از Hilt و Coroutine به همراه معماری MVVM و همچنین navigationComponent استفاده میکنیم.
برای دریافت سورس پروژه در گیت هاب روی لینک زیر کلیک کنید.