این ساختمان از دو نصیب مهم درست شده میباشد – طراحی اپلیکیشن در مشهد صاحبان رایا پارس چرخه application حیات (Lifecycle owners) و ناظران چرخه حیات (Lifecycle owners).
1- صاحبان چرخه حیات (Lifecycle owners) در دست گرفتن کنندگان رابط کاربری می باشند، که چرخه حیات خودشان را داراهستند مثل اکتیویتی و فرگمنت.
2- ناظران چرخه حیات (Lifecycle owners) مشاهده گر صاحبان چرخه حیات (Lifecycle owners) می باشند و هر تغییر و تحول در ارتباط چرخه حیات انها را اعلان میکنند. ما از LifecycleObserver برای تولید کامپوننت های باخبر از چرخه حیات (lifecycle-aware) استعمال میکنیم.
LiveData
LiveData برای این به کار گیری میشود که بلافاصله تغییرات تولید گردیده در اطلاعات را به رابط کاربری خبر دهد. لیست تحت توصیفی میباشد از LiveData :
-یک نگهدارنده داده قابل مشاهده میباشد.
-ناظران را از تغییرات اطلاعات باخبر میکند براین اساس میتواند رابط کاربری را بروزرسانی نماید.
-به چرخه حیات احترام میگذارد.
-خیلی مشابه به RxJava میباشد.
جریان کلی (Overall flow) LiveData
کامپوننت های رابط کاربری تغییرات را در LiveData مشاهده می نمایند که به نوبه خویش در واقع صاحبان چرخه حیات را مشاهده میکنند مثلا اکتیویتی یا این که فرگمنت برای چرخه حیات.
اینجا میگوییم که LiveData چهطور شغل میکند. آغاز بر روی بروزرسانی ها و تغییرات در اطلاعات پژوهش می نماید.
و هنگامی که مقدار اطلاعات بروز شد در دست گرفتن گر های رابط کاربری را نظارت می نماید از جمله اکتیویتی یا این که فرگمنت در شرایط آغاز (started) یا این که ادامه (Resumed) باشند.(یعنی در واقع رابط کاربری در حالا اکران به یوزرها است) که به ناظران استحضار دهد که رابط کاربری را بروز نماید.
هنوز چیزهایی بیشتری وجود داراست اما برای معمولی خیس شدن اینجانب تنها بروی بخش های اساسی که در صورت 3 امده میباشد تمرکز کرده ام.
مزیت های کلیدی LiveData :
-مدام اطلاعات را بروز می نماید.
-یک چرخه حیات با خبر میباشد.
-استعمال از تنظیمات های مطلوب با هر تغییراتی.
-خودداری از هدررفت خاطر.
سبک نما (ViewModel)
ViewModel یک محیط برای ذخیره سازی داده های مرتبط با رابط کاربریست. که مشمول داده های ما یحتاج رابط کاربری میگردد. مثلا، در حالتی که رابط کاربری دربرگیرنده لیستی از ایتم های خبری میباشد، پس ViewModel خبرها را در خویش نگه میدارد/ذخیره میکند و در مشت رابط کاربری می گذارد درصورتیکه نیاز باشد.
این سبب میگردد که بخش های گوناگون کد از هم جداگانه شوند (separation of concerns) ، و کنترلگرهای رابط کاربری (Activity و Fragment) به طور خالص صرفا مشتمل بر کدهای مختص به رابط کاربری مشوند مانند findViewById, click listeners, manipulating widgets ,... در حالی که ViewModel مشتمل بر داده هایی است که بایستی در رابط کاربری به اکران درایند.
این جداسازی خطاها عمده ای از توسعه و گسترش دهدگان اندروید را حل نموده است از جمله کرش کردن اپ یا این که از دست رفتن اطلاعات در هنگام چرخش دستگاه. ملخص سخن این میباشد که، ViewModel ها تغییرات در تنظیمات را محافظت می نماید.