ترفندفناوری

LiveData در اندروید چیست و چه کاربردی دارد؟

چرا به livedata در اندروید نیاز داریم؟ نحوه استفاده از livedata در اندروید چگونه می باشد؟ انواع livedata در اندروید چه می باشد؟

کاربران برنامه ها انتظار دارند که اجزای رابط کاربری به صورت تعاملی با تغییرات و به‌روزرسانی‌های داده‌های مرتبط پاسخ دهند تا تجربه استفاده تعاملی و پویاتری داشته باشند. چنین تغییراتی در رابط کاربری، تعامل اپلیکیشن را برای نمایه مخاطب گسترده‌تری جذاب می‌کند و مشتریان را از تجربه برند مورد نظر راضی می‌کند.

برای مدت طولانی، توسعه‌دهندگان اندروید به دلیل محدودیت‌های ساختاری تلاش می‌کردند تا به راحتی چنین مؤلفه های تعاملی را در رابط کاربری برنامه پیاده‌سازی کنند. اما زمانی که Android Jetpack بخشی به نام livedata در اندروید را به عنوان بخشی از مولفه معماری معرفی کرد، توسعه دهندگان آن را پذیرفتند تا از خیلی از مشکلات خودشان را رها سازند. در این مقاله قصد داریم مولفه livedata در اندروید را بررسی کنیم و جزییات آن را نیز مورد بررسی قرار دهیم پس تا آخر مقاله با ما همراه باشید.

livedata در اندروید چیست

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

برعکس، اگر اجزای برنامه غیر فعال باشند، تغییرات اعمال نمی شود. در نتیجه، هنگام به‌روزرسانی داده‌ها، نباید نگران چرخه عمر مؤلفه برنامه باشید. به عنوان مثال، یک Buttonو یک Textview وجود دارد که مقادیر آن ها بر اساس کلیک دکمه به روز می شود.

فرض کنید کاربر روی دکمه دو بار کلیک کرده است که بر اساس آن مقدار Textview از 0 به 2 افزایش می یابد. اکنون وقتی دستگاه را می چرخانیم تا پیکربندی طرح بندی را از جهت افقی به عمودی تغییر دهیم، با استفاده از LiveData، مقدار Textview برابر 2 خواهد بود و این مقدار را نشان می دهد; و اگر اینطور نباشد، مقدار Textview به 0 نشان داده خواهد شد.

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

چرا به livedata در اندروید نیاز داریم؟

livedata در اندروید میتواند به صورت مستقیم برای حل یک مشکل مهم کاربرد داشته باشد. درواقع به کمک livedata در اندروید میتوان مداخله های ناشی از واسطه ها/بازخوانی هایی که نتایج را به رشته UI ارسال می کنند حذف نمود. این یکی از ویژگی های اصلی یک مدل MVVM است که در آن تماس ها از ViewModel به Activity/fragment ارسال می شوند.

برای درک بهتر اگر یک برنامه کاربردی را در نظر بگیریم که در الگوی MVP توسعه یافته است؛ اگر بخواهیم UI را بر اساس پاسخ تماس شبکه به روز کنیم، می‌توانیم متدی را از لایه View به لایه Presentationفراخوانی کنیم تا درخواست شبکه را انجام دهیم و AsyncTask را برای انجام کار بنویسیم.

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

نحوه استفاده از livedata در اندروید چگونه می باشد؟

برای استفاده از LiveData در پروژه اندروید باید مراحل زیر را دنبال نماییم.

  • یک نمونه LiveData در بخش ViewModel خود برای نگهداری داده ها ایجاد کنید.
  • داده ها را در LiveData با استفاده از setValue() تنظیم کنید.
  • LiveData را با استفاده از post Value() به حالت اصلیش برگردانید. فقط این داده ها توسط Observer قابل مشاهده است که در Views یعنی بخش اصلی مورد نظر است.
  • در نهایت داده ها را با کمک تابع Observer() مشاهده کنید. در داخل Observer()، می‌توانید تمام تغییرات لازم را در رابط کاربری که می‌خواهید در صورت تغییر یا به‌روزرسانی در داده‌ها انجام دهید، تعریف کنید.

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

انواع livedata در اندروید چه می باشد؟

بخش هایی در livedata در اندرویدوجود دارند که به واسطه ویژگی‌هایشان هنگام به‌روزرسانی رابط کاربری مفید هستند و به صورت زیر می باشند:

  • LiveData: از ویژگی های Livedata می توانیم بگوییم که، livedata در اندروید به طور پیش فرض تغییر ناپذیر است. با استفاده از LiveData ما فقط می توانیم داده ها را مشاهده کنیم و نمی توانیم داده ها را تنظیم کنیم.
  • Mutable LiveData: قابل تغییر است و جز بخش های LiveData است. در Mutable LiveData می‌توانیم مقادیر را با استفاده از متدهای post Value() و setValue() مشاهده و تنظیم کنیم، تا بتوانیم مقادیر را به هر ناظر زنده یا فعالی ارسال کنیم.
  • Mediator LiveData: می تواند سایر اشیاء LiveData مانند منابع را مشاهده کند و به رویدادهای onChange() آنها واکنش نشان دهد. Mediator LiveData به ما قدرت کنترل می دهد که چه زمانی می‌خواهیم یک عمل خاص انجام دهیم یا زمانی که می‌خواهیم یک رویداد را منتشر کنیم.

پس از تغییر پیکربندی یا چرخش صفحه نمایش، LiveData فعال می شود. اما در برخی از سناریوها، مانند زمانی که ما نیاز به انجام به‌روزرسانی‌های UI با کلیک بر روی یک View خاص برای انجام اعتبارسنجی یا نمایش نوار پیشرفت در حین تماس با سرور داریم، با Single Live Event پیش می‌رویم. Single Live Event یک بخش از Mutable LiveData است که از چرخه کلی View آگاه است و می تواند داده ها را با یک مشاهده گر مشاهده کند.

انواع livedata در اندروید چه می باشد

مزایای استفاده از livedata در اندروید

استفاده از livedata در اندرویدمزایای زیر را برای ما فراهم می کند:

  • رابط کاربری با وضعیت داده مطابقت خواهد داشت
  • ثبات کد در طول چرخه عمر مؤلفه برنامه افزایش می یابد
  • استفاده از حافظه کاهش می یابد؛ زیرا رویدادها ناخواسته به طور خودکار مدیریت می شوند
  • لازم نیست تغییرات در آخرین داده ها در طول پیکربندی/تغییر جهت صفحه نمایش به روز شوند
  • و…

همیشه با آخرین داده ها به روز باشید

هرگاه تغییری در داده های ذخیره شده در livedata در اندرویدایجاد شود، به همه ناظران مرتبط با LiveData اطلاع داده می شود (فقط زمانی که اجزای برنامه فعال هستند). اگر هر جزء برنامه در حالت غیر فعال باشد، مفهوم LiveData کار کرد خاصی ندارد. اما آخرین داده ها توسط Observer مشاهده خواهد شد. هنگامی که مؤلفه مجدداً فعال می شود، جدیدترین داده ها روی آن اعمال می شود.

به اشتراک گذاری منابع

مانند الگوی Singleton، ما می‌توانیم شی LiveData خود را نیز گسترش دهیم تا بتوان آنها را در برنامه به اشتراک گذاشت. هنگامی که شی livedata در اندروید به سرویس سیستم متصل می شود، هر ناظری که به منبع نیاز دارد می تواند شی LiveData را به راحتی تماشا کند. اطلاعات بیشتر در مورد LiveData در مثالهای زیر بررسی می شوند.

یک برنامه با دو صفحه – ورود و صفحه اصلی را در نظر بگیرید.

صفحه ورود — > مولفه  Single Live Event را پوشش می دهد.

صفحه ورود دارای ایمیل، متن های ویرایشی Pwd و دکمه ورود است.

برای اعتبار سنجی ایمیل و رمز عبور، از داده های Single Event Live استفاده می کنیم.

پس از احراز هویت موفق، به صفحه اصلی هدایت می شوید

صفحه اصلی —> مفهوم Mutable LiveData، Mediator LiveData را پوشش می دهد

صفحه اصلی شامل سه  کلید اصلی خواهد بود.

رنگ پس زمینه طرح بندی را می توان با کلیک بر روی دکمه اول تغییر داد.

با کلیک بر روی کلید دوم، رنگ پس زمینه دکمه اول و دوم تغییر می کند. از Mutable LiveData برای چنین به روز رسانی های رابط کاربری استفاده کنید.

پس زمینه دکمه سوم بسته به زدن دکمه اول یا دوم تغییر می کند. MediatorLiveData برای این به‌روزرسانی رابط کاربری استفاده می‌شود.

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

تقریباً  حدود چند سال پیش، گوگل «Android Architecture Components» را منتشر کرد، مجموعه‌ای از کتابخانه‌ها که با هدف کمک به توسعه‌دهندگان اندروید در طراحی برنامه‌های قوی‌تر، قابل آزمایش و قابل نگهداری نقش مهمی را ایفا کردند. قابل توجه ترین  بخش livedata در اندروید و بخش های مربوط به چرخه حیات، ماندگاری خاصی را در بخش های مختلف ایجاد نمودند. در این  مقاله ما جزییات Livedata را بررسی کردیم حال جزییات دیگر را بررسی می کنیم که کمی در این خصوص در مثالهای بالا صحبت کردیم.

مفهوم جدید در مورد LiveData این است که از چرخه حیات آگاه است، به این معنی که به وضعیت چرخه حیات اجرای برنامه (فعالیت‌ها، قطعات) احترام می‌گذارد و تضمین می‌کند که livedata در اندرویدتنها زمانی که در حالت چرخه حیات فعال است، مولفه (ناظر) را به‌روزرسانی می‌کند. این رفتار از نشت اشیا جلوگیری می کند و تضمین می کند که برنامه بیشتر از آنچه باید کار نمی کند.

نتیجه گیری

گنجاندن LiveData در یک پروژه به طور قابل توجهی کد boilerplate را برای به روز رسانی UI در برنامه کاهش می دهد. مفهوم LiveData به طور کامل مشکلات عمده ای مانند مسائل تغییر جهت را کاهش می دهد، که ما هنگام به روز رسانی UI با توجه به مفهوم رابط ها تجربه کردیم. LiveData همچنین تضمین می کند که UI همیشه به روز است حتی زمانی که پیکربندی برنامه تغییر می کند. مولفه Innominds در توسعه اپلیکیشن با ترکیب آخرین روندهای دیجیتال در همه دستگاه ها و پلتفرم ها تبحر خاصی دارد. برای اطلاعات بیشتر، باید مواردی که در حوزه Movility  وجود دارد را بررسی کنید.

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

پس از بررسی رویکردهای مختلف برای حل یک کار، می‌توانیم LiveData را به عنوان ترکیبی بین شنوندگان رابط و راه‌حل مبتنی بر رویداد در نظر بگیریم که از هر راه‌حل خوبی بهره می‌برد. به عنوان یک قاعده کلی، ما توصیه می کنیم تقریباً در هر موقعیتی که این جایگزین های دیگر در نظر گرفته می شوند (یا قبلاً استفاده شده اند) از livedata در اندرویداستفاده کنید (یا تغییراتی در آن ایجاد کنید) و به طور خاص، در هر سناریویی که می خواهیم رابط کاربری مبتنی بر رابط کاربری را به روز کنیم، در مورد تغییرات داده باید به روش هایی خوب عمل کنیم.

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

طهرانی

بنیانگذار مجله اینترنتی ماگرتا و متخصص سئو ، کارشناس تولید محتوا ، هم‌چنین ۱۰ سال تجربه سئو ، تحلیل و آنالیز سایت ها را دارم و رشته من فناوری اطلاعات (IT) است . حدود ۵ سال است که بازاریابی دیجیتال را شروع کردم. هدف من بالا بردن سرانه مطالعه کشور است و اون هدف الان ماگرتا ست.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *