Foldable Device (دستگاه تاشو) — طبقهای از ابزارهای موبایل با صفحه نمایش انعطافپذیر است که هنگام بستن و باز کردن، عامل شکل خود را تغییر میدهد. چنین دستگاههایی ہم چون تلفن کوچک و ہم چون تبلت کار میکنند — بستگی به وضعیت صفحه نمایش دارد. به گزارش Android Developers (2025)، بازار جهانی دستگاههای تاشو در سال 2024 به اندازه 42% رشد کرده است و سازگاری نرمافزارها با این عامل شکل برای پروژههای بزرگ اجباری میشود.
نکات کلیدی
Foldable Device — یک دستگاه موبایل با صفحه نمایش OLED انعطافپذیر است که بدون آسیب به ماتریس میتواند تا شود. در حالت بسته، چنین دستگاهی کوچک است و در جیب جا میگیرد، در حالت باز نیز صفحه نمایشی به اندازه تبلت ارائه میدهد. اولین دستگاه تاشوی انبوه Royole FlexPai (2018) بود، اما Samsung Galaxy Fold (2019) و Huawei Mate X این طبقه را محبوب کردند.
تفاوت کلیدی دستگاههای تاشو با دستگاههای سنتی — وجود لولی (hinge) و صفحه نمایش انعطافپذیر است. هنگام بستن، صفحه نمایش نمیشکند، بلکه بر اساس شعاعی که توسط ساختار لولی تعیین شده خم میشود. فناوریهای مدرن (UTG — شیشه فوقنازک، 2020+ و Samsung Infinity Flex) تا 200 000 چرخه تا شدن بدون آسیب قابل مشاهده را تحمل میکنند.
برای توسعهدهنده، دستگاههای تاشو سه چالش ایجاد میکنند: تغییر اندازه صفحه نمایش حین باز کردن، وجود چین خوردگی (crease) و کار در حالت نیمهباز (tabletop mode)، زمانی که دستگاه با زاویه روی سطح قرار میگیرد.
کتابی (book-style) — Galaxy Z Fold، Google Pixel Fold، OnePlus Open. صفحه نمایش خارجی (cover screen) برای استفاده در حالت بسته، صفحه نمایش داخلی انعطافپذیر (inner screen) برای حالت تبلت. نسبت اضلاع صفحه خارجی حدود 22:9، داخلی حدود 6:5 یا 4:3.
صدفی (flip-style) — Galaxy Z Flip، Motorola Razr، Oppo Find N2 Flip. تا شدن عمودی، صفحه نمایش خارجی برای اعلانها (1.5–3.5 اینچ)، داخلی — تلفن استاندارد (6.7–7 اینچ). ویژگی اصلی — در حالت نیمهباز (flex mode)، نرمافزار میتواند صفحه نمایش را به دو زونه تقسیم کند: کنترل در بالا، محتوا در پایین.
صفحه نمایش دوگانه — Microsoft Surface Duo، Lenovo ThinkPhone. دو صفحه نمایش جداگانه با لولی در وسط. هنگام باز کردن یک منطقه مشترک تشکیل میدهند، اما با شکاف فیزیکی بین صفحات. API زاویه لولی را در نظر میگیرد و به نرمافزار اجازه میدهد روی هر دو صفحه کشیده شود.
Google Jetpack WindowManager را برای کار با دستگاههای تاشو ارائه میدهد. API شامل سه مؤلفه کلیدی است: WindowLayoutInfo — اطلاعات مکان تا شدگی (fold)، WindowPosture — وضعیت فیزیکی دستگاه و FoldingFeature — توصیف منطقه خمیدگی: جهتگیری، وضعیت و زاویه.
FoldingFeature شامل نوع تاشو (hinge — لولی، fold — صفحه نمایش انعطافپذیر)، وضعیت (flat — باز، half-opened — نیمهباز، folded — بسته) و زاویه خمیدگی (از 0 تا 180 درجه). زاویه در دستگاههایی با سنسور زاویه (Galaxy Z Fold، Pixel Fold) دسترس است.
val windowInfoRepository =
WindowInfoTracker.getOrCreate(context)
windowInfoRepository.windowLayoutInfo(context)
.collect { layoutInfo ->
layoutInfo.displayFeatures
.filterIsInstance<FoldingFeature>()
.forEach { feature ->
// پردازش تا شدن
}
}
برای تعیین تاشو بودن یا نبودن دستگاه، از PackageManager.hasSystemFeature("android.hardware.sensor.hinge_angle") استفاده کنید. در دستگاه با لولی، این حسگر وجود دارد — در تلفنهای عادی وجود ندارد.
سازگاری واسطه — وظیفه اصلی توسعهدهنده در پشتیبانی از دستگاههای تاشو است. هنگام باز کردن، پنجره میتواند دو برابر پهنا شود و واسطه باید از یک ستونی به چند ستونی تبدیل شود. از Window Size Class برای تغییر بین چیدمانها استفاده کنید — هنگام باز کردن، کلاس از Compact به Expanded تغییر میکند.
به پردازش تغییرات پیکربندی توجه ویژهای داشته باشید. وقتی کاربر دستگاه را باز میکند، Activity ممکن است دوباره ساخته شود. اگر نرمافزار وضعیت را ذخیره نکند، کاربر دادههای وارد شده یا موقعیت پیمایش را از دست خواهد داد. از ViewModel برای دادههای صفحه و onSaveInstanceState برای وضعیت UI استفاده کنید.
برای flex mode (tabletop mode)، طراحی باید صفحه نمایش را به دو زونه کاربردی تقسیم کند. زونه بالا — مشاهده محتوا (ویدیو، گالری، فهرست)، زونه پایین — کنترل (دکمهها، کنترلرها، صفحه کلید). این الگو در پخشکنندههای ویدیو استفاده میشود: YouTube در Galaxy Z Flip ویدیو را در بالا، توصیهها و دکمهها را در پایین نشان میدهد.
آزمایش — یکی از پیچیدهترین جنبههای توسعه برای دستگاههای تاشو است. Android Emulator امکان شبیهسازی دستگاههای تاشو را از طریق AVD با پیکربندی "Foldable" (صفحه نمایش داخلی 7.6 اینچی، خارجی 4.6 اینچی) فراهم میکند. شبیهساز از تغییر حالت بسته به باز پشتیبانی میکند.
برای آزمایش در شبیهساز، از ADB استفاده میشود. دستور adb shell am broadcast -a android.intent.action.VIEW -e mode expand دستگاه را باز میکند، adb shell am broadcast -a android.intent.action.VIEW -e mode fold آن را میبندد. همچنین میتوان زاویه خمیدگی را در پنجره شبیهساز تغییر داد.
آزمایش واقعی روی دستگاههای فیزیکی برای بررسی احساس انتقال، کیفیت لولی و قابلیت مشاهده چین خوردگی توصیه میشود. مدلهای اصلی برای آزمایش: Samsung Galaxy Z Fold 6 (کتابی)، Samsung Galaxy Z Flip 6 (صدفی)، Google Pixel Fold، Motorola Razr 50.
عناصر حیاتی را در منطقه خمیدگی قرار ندهید. دکمهها، فیلدهای ورودی و عناصر تعاملی باید حداقل 24 dp از خط خمیدگی فاصله داشته باشند. چین خوردگی (crease) — ویژگی جداییناپذیر صفحات انعطافپذیر است، قابلیت مشاهده آن با هر نسل کاهش مییابد، اما به طور کامل از بین نمیرود.
به جای توقف، از ادامه (continuation) استفاده کنید. هنگام باز کردن، محتوا باید به صورت پیوسته از صفحه خارجی به داخلی جریان پیدا کند یا در تمام محیط کشیده شود. از بارگیری Activity جدید خودداری کنید — از محاسبه مجدد چیدمان در همان صفحه استفاده کنید. Jetpack WindowManager تغییرات را ردیابی میکند و از طریق WindowLayoutInfo به نرمافزار اطلاع میدهد.
برای سناریوهای خلاقانه، زاویه لولی را در نظر بگیرید. در نرمافزارهای عکس و ویدیو، حالت نیمهباز (90°) دستگاه را به پایه تبدیل میکند: دوربین تصویر میگیرد، قسمت پایین صفحه نمایش پانل کنترل را نشان میدهد. این سناریو به ویژه در Samsung Camera و نرمافزارهای ساخته شده محبوب است.
سوالات متداول
وجود PackageManager.FEATURE_SENSOR_HINGE_ANGLE را بررسی کنید. اگر true باشد — دستگاه با سنسور زاویه لولی تاشو است. همچنین DisplayFold API را چک کنید.
در WindowInfoTracker.windowLayoutInfo() مشترک شوید. هنگام تغییر وضعیت FoldingFeature، واسطه را مطابق با Window Size Class و موقعیت خمیدگی بازسازی کنید.
Jetpack WindowManager روی API 14+ کار میکند. اما برای FoldingFeature.HALF_OPENED به API 24+ (Android 7.0) نیاز است. سنسور زاویه لولی در Android 10+ فراهم است.
خیر. از Window Size Class و Layoutomization از Jetpack WindowManager استفاده کنید. یک کد واحد با بررسی کلاس اندازه، جایگزین چیدمانهای منابع جداگانه میشود.
اکثر دستگاههای تاشو حفاظت IP48 یا IP58 دارند — مقاومت محدود در برابر آب. در زیر آب، صفحه نمایش انعطافپذیر ممکن است آسیب ببیند، بنابراین غوطه دادن توسط سازندگان توصیه نمیشود.
نتیجه
ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد
IT Sectr از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.
همچنین بخوانید