اخبار محصول

‫Jetpack WindowManager 1.5 پایدار است

‫۲ دقیقه خواندن
مشاهده نمایه Francesco Romano
Francesco Romano مهندس روابط توسعه‌دهندگان، Android

با خوشحالی اعلام می‌کنیم که Jetpack WindowManager 1.5.0 اکنون پایدار است!

این نسخه براساس پایه قوی سازگاری در WindowManager ساخته شده است و ایجاد واسط‌های کاربری تطبیقی و صیقلی را که در همه اندازه‌های صفحه‌نمایش عالی به‌نظر می‌رسند آسان‌تر می‌کند. با ادامه رشد بوم‌سازگان Android، کاربران در انواع بیشتری از دستگاه‌ها نسبت‌به گذشته با برنامه‌ها تعامل می‌کنند: از تلفن و دستگاه‌های تاشو گرفته تا رایانه‌های لوحی، نمایشگرهای متصل، Chromebook، و حتی نمایشگرهای خودرو در حالت پارک.

‫WindowManager نسخه ۱.۵ بر ارائه ابزارهای بهتر برای این محیط دستگاه متنوع تمرکز دارد.

ویژگی‌های جدید در WindowManager 1.5

این نسخه پایدار نقاط گسست جدیدی برای صفحه‌نمایش‌های بسیار بزرگ معرفی می‌کند، API جاسازی فعالیت را بهبود می‌بخشد، و انعطاف‌پذیری بیشتری برای محاسبه سنجه‌های پنجره ارائه می‌دهد.

کلاس‌های اندازه پنجره جدید: بزرگ و بسیار بزرگ

بزرگ‌ترین به‌روزرسانی در نسخه ۱.۵ اضافه شدن دو کلاس جدید اندازه پنجره عرض است: «بزرگ» و «خیلی بزرگ».

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

در اینجا نقاط گسست عرض جدید را می‌بینید:

  • بزرگ: برای عرض‌های بین ۱۲۰۰dp و ۱۶۰۰dp
  • خیلی بزرگ: برای عرض‌های ≥۱۶۰۰dp
window_size_classes_width.png

کلاس‌های مختلف اندازه پنجره براساس عرض نمایشگر. 

چرا این موارد مهم هستند؟

از Android 16 QPR1 Beta 2،‏ Android از نمایشگرهای متصل پشتیبانی می‌کند و به کاربران امکان می‌دهد نمایشگر خارجی را به دستگاهشان متصل کنند و آن را به ابزاری شبیه رایانه با صفحه‌نمایش بزرگ تبدیل کنند.

ADB_5350_asset.gif

تلفن به نمایشگر خارجی متصل است و جلسه کاری در نمایشگر خارجی درحال اجرا است. 

با دردسترس قرار گرفتن این ویژگی جدید، راهنمایی‌های قاطع برای گنجاندن نمایشگرهای بزرگ‌تر بسیار مهم است. 

در این سطوح بسیار بزرگ، صرفاً بزرگ کردن چیدمان «ازهم بازشده» رایانه لوحی همیشه بهترین تجربه کاربری نیست. برای مثال، کارخواه ایمیل ممکن است به‌راحتی دو قاب (صندوق ایمیل و پیام) را در کلاس اندازه پنجره «ازهم بازشده» نشان دهد. اما در یک مانیتور رومیزی «بسیار بزرگ»، کارخواه ایمیل می‌تواند به‌طور ظریف سه یا حتی چهار قاب را نمایش دهد—شاید یک صندوق ورودی، یک فهرست پیام، محتوای کامل پیام، و یک پانل تقویم/تکلیف، همه به‌طور هم‌زمان.

با ارائه نقاط گسست رسمی برای اندازه‌های نمایشگر بسیار بزرگ، WindowManager 1.5 به شما نشان می‌دهد که چیدمان‌هایی را که به‌طور ویژه برای تجربه رایانه‌ای پربازده و متراکم از اطلاعات طراحی شده‌اند معرفی کنید.

کلاس‌های اندازه پنجره را می‌توان بااستفاده از computeWindowSizeClass() محاسبه کرد که یک تابع افزونه کتابخانه androidx.window.core.layout است که نوع Set<WindowSizeClass> را گسترش می‌دهد. 

برای افزودن کلاس‌های اندازه پنجره جدید به پروژه، کافی است تابع را از مجموعه WindowSizeClass.BREAKPOINTS_V2 به‌جای WindowSizeClass.BREAKPOINTS_V1 فراخوانی کنید:

val currentWindowMetrics =

    WindowMetricsCalculator.getOrCreate()

    .computeCurrentWindowMetrics(LocalContext.current)


val sizeClass = WindowSizeClass.BREAKPOINTS_V2

    .computeWindowSizeClass(currentWindowMetrics)


سپس وقتی مطمئن شدید برنامه‌تان حداقل این مقدار فضا را دارد، چیدمان صحیح را اعمال کنید:

if(sizeClass.isWidthAtLeastBreakpoint(

    WindowSizeClass.WIDTH_DP_LARGE_LOWER_BOUND)){

    ...

    // window is at least 1200 dp wide


}

کتابخانه‌های تطبیقی

کتابخانه تطبیقی «ترکیب Material 3» به شما کمک می‌کند واسط‌های کاربر تطبیقی ایجاد کنید که به‌طور خودکار براساس پیکربندی‌های پنجره فعلی مثل کلاس‌های اندازه پنجره یا وضعیت‌های دستگاه تطبیق پیدا می‌کنند. 

خبر خوب این است که کتابخانه ازقبل با نقاط گسست جدید به‌روز است! از نسخه ۱.۲ (اکنون در مرحله «نامزد انتشار» است)، دستورات داربست قاب پیش‌فرض از کلاس‌های اندازه عرض پنجره «بزرگ» و «خیلی بزرگ» پشتیبانی می‌کنند.

فقط کافی است با اعلام در فایل ساخت Gradle خود که می‌خواهید از نقاط گسست جدید استفاده کنید، موافقت کنید:

currentWindowAdaptiveInfo(

    supportLargeAndXLargeWidth = true)

بهبودهای بیشتر

  • جاسازی فعالیت — ذخیره خودکار و بازیابی: اکنون WindowManager می‌تواند وضعیت تقسیم‌های جاسازی فعالیت را به‌طور خودکار ذخیره و بازیابی کند. این کار به حفظ چیدمان کاربر درطول بازآفرینی فرایند کمک می‌کند و منجر به تجربه‌ای پایدارتر و یکنواخت‌تر می‌شود. توسعه‌دهندگان دیگر لازم نیست وضعیت را به‌صورت دستی ذخیره و بازیابی کنند، بلکه می‌توانند به‌سادگی با تنظیم ویژگی EmbeddingConfiguration#isAutoSaveEmbeddingState، از ذخیره خودکار استفاده کنند.
  • WindowMetrics گسترده: اکنون می‌توانید WindowMetrics را از زمینه Application محاسبه کنید، نه فقط از زمینه Activity. این کار انعطاف‌پذیری بیشتری برای دسترسی به اطلاعات پنجره از بخش‌های مختلف برنامه شما فراهم می‌کند.

نحوه شروع کردن به کار

برای شروع استفاده از کلاس‌های اندازه «بزرگ» و «خیلی بزرگ» و دیگر ویژگی‌های 1.5 در پروژه‌های Android، وابستگی‌های برنامه را در build.gradle.kts به جدیدترین نسخه پایدار به‌روز کنید:

dependencies {
    implementation("androidx.window:window:1.5.0") 

    // or, if you're using the WindowManager testing library:

    testImplementation("androidx.window:window-testing:1.5.0")

}

‫WindowManager 1.5 گامی دیگر در جهت ایجاد برنامه‌های کاملاً تطبیقی است که در انواع مختلف Android اجرا می‌شوند. برای مشاهده فهرست کامل تغییرات و رفع اشکالات، یادداشت‌های رسمی انتشار را بررسی کنید.

کدنویسی خوش بگذرد!

نوشته:
ادامه خواندن