ICP·Devآی‌سی‌پی‌·دِو
بازگشت به مقالات
اندروید۷ تیر ۱۴۰۵3 دقیقه مطالعه

فراتر از JSON: چگونه RemoteCompose رابط کاربری سرور-محور اندروید را بازتعریف می‌کند

بررسی کنید که چگونه گوگل با RemoteCompose در حال بازتعریف رابط کاربری سرور-محور (SDUI) و توسعه ویجت‌ها است. این فریم‌ورک جدید AndroidX با سریال‌سازی دستورات بوم Jetpack Compose به جریان‌های باینری فشرده، به‌روزرسانی‌های بومی و بدون لگ را بدون نیاز به انتشار نسخه جدید در فروشگاه‌های برنامه فراهم می‌کند.

نکات کلیدی

  • بررسی کنید که چگونه گوگل با RemoteCompose در حال بازتعریف رابط کاربری سرور-محور (SDUI) و توسعه ویجت‌ها است
  • این فریم‌ورک جدید AndroidX با سریال‌سازی دستورات بوم Jetpack Compose به جریان‌های باینری فشرده، به‌روزرسانی‌های بومی و بدون لگ را بدون نیاز به انتشار نسخه جدید در فروشگاه‌های برنامه فراهم می‌کند
اشتراک‌گذاری
فراتر از JSON: چگونه RemoteCompose رابط کاربری سرور-محور اندروید را بازتعریف می‌کند

فراتر از JSON: چگونه RemoteCompose رابط کاربری سرور-محور اندروید را بازتعریف می‌کند

سال‌هاست توسعه‌دهندگان موبایل که به دنبال تجربه کاربری پویا هستند، با یک سازش سخت مواجه بوده‌اند. اگر می‌خواستید چیدمان صفحه را تغییر دهید، یک بنر تبلیغاتی را تنظیم کنید یا یک تست A/B اجرا کنید، دو راه داشتید: یا باید به‌روزرسانی برنامه را از طریق یک چرخه بررسی چند روزه منتشر می‌کردید، یا یک فریم‌ورک ضعیف رابط کاربری سرور-محور (SDUI) مبتنی بر شِمای بزرگ JSON و تجزیه‌کننده‌های پیچیده در سمت کلاینت پیاده‌سازی می‌کردید. گرچه WebViewها مقداری انعطاف‌پذیری ارائه می‌دادند، اما این کار با هزینه مصرف بسیار بالای حافظه، مدیریت ضعیف ژست‌های حرکتی و رندرینگ کند انجام می‌شد.

به دنبال آخرین دستاوردهای Google I/O، تیم اندروید به آرامی راهکار نهایی را منتشر کرده است: RemoteCompose (androidx.compose.remote)، یک فریم‌ورک رسمی که نحوه انتقال پویای (Stream) رابط کاربری، کامپایل و رندر آن روی دستگاه‌های موبایل را کاملاً دگرگون می‌سازد.


سریال‌سازی در سطح بوم (Canvas): پایان تجزیه JSON

برخلاف روش‌های سنتی SDUI که در آن‌ها باید سرور و کلاینت روی کاتالوگ از‌پیش‌تعریف‌شده‌ای از شمای کامپوننت‌ها توافق داشته باشند، RemoteCompose در پایین‌ترین سطح از خط لوله رندر اندروید عمل می‌کند: بوم (Canvas).

در بخش بک‌اند، توسعه‌دهندگان از یک DSL خالص مبتنی بر Kotlin Multiplatform برای JVM جهت نوشتن کدهای Jetpack Compose استفاده می‌کنند. به جای تولید پیکسل، یک RemoteComposeWriter این عملیات‌های ترسیم را رهگیری کرده و آن‌ها را به یک دادگان باینری (Payload) بسیار فشرده و مستقل (یک ByteArray) سریال‌سازی می‌کند. این فریم‌ورک تعاریف رابط کاربری را به بیش از ۹۳ عملیات مجزای سطح بوم نگاشت می‌کند؛ عملیاتی که اشکال، گرادیان‌ها، بردارها، سایه‌ها، متن و محدوده‌های ژست‌های حرکتی را پوشش می‌دهند.

برنامه کلاینت به عنوان یک «پخش‌کننده» سبک عمل می‌کند. هنگامی که بایت‌ها را دریافت می‌کند، رمزگشایی JSON را کاملاً نادیده می‌گیرد و باینری را مستقیماً برای رندر بومی بوم به پردازنده گرافیکی (GPU) منتقل می‌کند. نتیجه کار، یک رابط کاربری فوری و بدون لگ با هماهنگی پیکسلی بی‌نقص با Material 3 است.

یک اینفوگرافیک فنی دقیق در مقایسه روش‌های سنتی...


منطق هوشمند و مبتنی بر زمان روی دستگاه

RemoteCompose به چیدمان‌های ایستا محدود نمی‌شود. این ابزار دارای یک سیستم مدیریت وضعیت داخلی و یک موتور انیمیشن است که مستقل از برنامه میزبان کار می‌کند.

پخش‌کننده محلی با تجزیه عبارات ریاضی به طور مستقیم درون باینری دریافتی، می‌تواند تغییرات متغیرها را در طول زمان محاسبه کند. توسعه‌دهندگان می‌توانند انیمیشن‌های پیچیده و مبتنی بر زمان – مانند افکت‌های ذرات سفارشی، انتقال‌های کشسان و انیمیشن‌های فنری (Spring) – را با استفاده از توابع جبری مانند sin، cos، lerp و clamp که مستقیماً در بایت‌های ارسالی کامپایل شده‌اند، پیاده‌سازی کنند.


موتور جدید برای Jetpack Glance و Wear OS

گوگل هم‌اکنون با ادغام مستقیم RemoteCompose در Jetpack Glance (فریم‌ورک توسعه ویجت)، قابلیت‌های آن را اثبات کرده است. با شروع اندروید ۱۷، Glance از RemoteCompose برای تامین انرژی ویجت‌های صفحه اصلی، کاشی‌های Wear OS و رابط کاربری داشبورد Android Auto استفاده می‌کند.

  • تغییر اندازه روان: همزمان با کشیدن و تغییر سایز ویجت‌ها توسط کاربران، چیدمان‌ها به صورت آنی و روان و بدون پرش یا بریده شدن محتوا مجدداً کالیبره می‌شوند.
  • مصرف باتری فوق‌العاده کم: از آنجا که چیدمان‌های باینری مستقیماً توسط لایه سیستم اجرا می‌شوند، RemoteCompose نیاز به بیدار کردن مداوم یا اجرای فرآیندهای پس‌زمینه برای برنامه‌های میزبان را از بین می‌برد.
  • ویجت‌های یکپارچه برای ساعت‌های هوشمند: کاشی‌های Wear OS اکنون می‌توانند منطق بسیار تعاملی را به صورت بومی روی سخت‌افزارهای کم‌مصرف رندر کنند که این امر طول عمر باتری گجت‌های پوشیدنی را به طور چشمگیری افزایش می‌دهد.

اندروید با معرفی RemoteCompose به جام مقدس توسعه موبایل دست یافته است: چابکی وب در کنار عملکرد بی‌نقص و فوق‌العاده روانِ Jetpack Compose بومی.

برچسب‌ها

#اندروید ۱۷#Jetpack Compose#RemoteCompose#توسعه‌دهندگان اندروید#رابط کاربری سرور محور

منابع و ارجاعات مستند

پیشنهاد مطالعه بعدی

خوشتان آمد؟ مقاله بعدی را بگیرید

در خبرنامه عضو شوید تا راهنمای بعدی در ایمیلتان باشد — بدون مزاحمت، لغو عضویت در هر زمان.