مفاهیم و پیادهسازی Jetpack Compose
اساساً، تولید وضعیت (state production) اعمال تدریجی تغییرات در وضعیت رابط کاربری (UI state) است. وضعیت (state) همیشه وجود دارد و در نتیجه رویدادها تغییر میکند. تفاوتهای بین رویدادها و وضعیت در جدول زیر خلاصه شده است:
رویدادها | ایالت |
گذرا، غیرقابل پیشبینی، و برای یک دوره محدود وجود دارند. | همیشه وجود دارد. |
نهادههای تولید دولتی. | خروجی تولید دولتی. |
محصول رابط کاربری یا منابع دیگر. | توسط رابط کاربری مصرف میشود. |
رویدادها میتوانند از موارد زیر ناشی شوند:
- کاربران : همانطور که با رابط کاربری برنامه تعامل دارند.
- منابع دیگر تغییر وضعیت : APIهایی که دادههای برنامه را از رابط کاربری، دامنه یا لایههای داده مانند رویدادهای timeout مربوط به snackbar، موارد استفاده یا مخازن ارائه میدهند.
API های تولید دولتی
بسته به اینکه در چه مرحلهای از خط تولید هستید، دو API اصلی در تولید وضعیت (state production) استفاده میشوند:
مرحله خط لوله | رابط برنامهنویسی کاربردی (API) |
ورودی | شما باید از APIهای ناهمزمان برای انجام کارها خارج از نخ رابط کاربری استفاده کنید تا از بروز مشکلات رابط کاربری جلوگیری شود. برای مثال، Coroutineها یا Flowها در کاتلین و RxJava یا callbackها در زبان برنامهنویسی جاوا. |
خروجی | شما باید از APIهای نگهدارنده داده قابل مشاهده برای نامعتبر کردن و رندر مجدد رابط کاربری هنگام تغییر وضعیت استفاده کنید. به عنوان مثال، StateFlow یا LiveData. نگهدارندههای داده قابل مشاهده تضمین میکنند که رابط کاربری همیشه یک وضعیت رابط کاربری برای نمایش روی صفحه دارد. |
از بین این دو، انتخاب API ناهمزمان برای ورودی، تأثیر بیشتری بر ماهیت خط تولید حالت نسبت به انتخاب API قابل مشاهده برای خروجی دارد. دلیل این امر این است که ورودیها نوع پردازشی را که ممکن است روی خط تولید اعمال شود، تعیین میکنند .
مونتاژ خط لوله تولید دولتی
بخشهای بعدی تکنیکهای تولید وضعیت را که برای ورودیهای مختلف مناسبتر هستند و APIهای خروجی که با آنها مطابقت دارند، پوشش میدهد. هر خط تولید وضعیت ترکیبی از ورودیها و خروجیها است و باید:
- آگاه از چرخه حیات : در مواردی که رابط کاربری قابل مشاهده یا فعال نیست، خط تولید وضعیت نباید هیچ منبعی را مصرف کند، مگر اینکه صریحاً لازم باشد.
- سهولت استفاده : رابط کاربری باید بتواند به راحتی حالت رابط کاربری تولید شده را رندر کند. ملاحظات مربوط به خروجی خط تولید حالت در رابطهای برنامهنویسی کاربردی مختلف View مانند سیستم View یا Jetpack Compose متفاوت خواهد بود.
انواع خروجی در خطوط تولید ایالتی
انتخاب API خروجی برای وضعیت رابط کاربری و ماهیت ارائه آن تا حد زیادی به API مورد استفاده برنامه شما برای رندر رابط کاربری بستگی دارد. در برنامههای اندروید، میتوانید از Views یا Jetpack Compose استفاده کنید. ملاحظاتی که در اینجا باید در نظر گرفته شوند عبارتند از:
- خواندن وضعیت به شیوهای آگاهانه از چرخه حیات .
- اینکه آیا وضعیت باید در یک یا چند فیلد از دارنده وضعیت نمایش داده شود .
جدول زیر خلاصهای از APIهایی که باید برای خط تولید حالت خود هنگام استفاده از فریمورک Views استفاده کنید را ارائه میدهد:
ورودی | خروجی |
API های تک مرحله ای | |
APIهای جریان | |
APIهای تکمرحلهای و جریانی | |