Foldable Device — основы, складные устройства в разработке

Автор: IT Sectr Опубликовано: 2026-06-09 Время чтения: 9 мин

Foldable Device (складное устройство) — это класс мобильных гаджетов с гибким дисплеем, который меняет форм-фактор при складывании и раскладывании. Такие устройства работают и как компактный телефон, и как планшет — в зависимости от положения экрана. По данным Android Developers (2025), глобальный рынок складных устройств вырос на 42% за 2024 год, и адаптация приложений под этот форм-фактор становится обязательной для крупных проектов.

Главное

  • Foldable Device — устройство с гибким дисплеем, меняющее форм-фактор при складывании.
  • Типы — книжные (Galaxy Z Fold), раскладушки (Galaxy Z Flip), двойной экран (Surface Duo).
  • Fold State — состояние устройства: полностью раскрыто, полностью сложено, полураскрыто (tabletop).
  • Адаптация — интерфейс должен перестраиваться при изменении конфигурации экрана.
  • WindowManager — Jetpack WindowManager API для обработки изменений состояния складного устройства.

Что такое Foldable Device?

Foldable Device — это мобильное устройство с гибким OLED-дисплеем, способным складываться без повреждения матрицы. В сложенном состоянии такое устройство компактно и умещается в кармане, в разложенном предоставляет экран планшетного размера. Первым массовым складным устройством стал Royole FlexPai (2018), но популяризировали категорию Samsung Galaxy Fold (2019) и Huawei Mate X.

Ключевое отличие складных устройств от традиционных — наличие шарнира (hinge) и гибкого дисплея. При складывании дисплей не ломается, а изгибается по радиусу, определённому конструкцией шарнира. Современные технологии (UTG — Ultra Thin Glass, 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 учитывает hinge angle и позволяет приложению растягиваться на оба экрана.

API для складных устройств в Android

Google предоставляет Jetpack WindowManager для работы со складными устройствами. API включает три ключевых компонента: WindowLayoutInfo — информация о расположении складки (fold), WindowPosture — физическое положение устройства и FoldingFeature — описание области сгиба: ориентация, состояние и угол.

FoldingFeature содержит тип складки (hinge — шарнир, fold — гибкий экран), состояние (flat — раскрыто, half-opened — полураскрыто, folded — сложено) и угол сгиба (от 0 до 180 градусов). Угол доступен на устройствах с датчиком угла (Galaxy Z Fold, Pixel Fold).

kotlin
val windowInfoRepository =
    WindowInfoTracker.getOrCreate(context)
windowInfoRepository.windowLayoutInfo(context)
    .collect { layoutInfo ->
        layoutInfo.displayFeatures
            .filterIsInstance<FoldingFeature>()
            .forEach { feature ->
                // handle folding
            }
    }

Для определения, является ли устройство складным, используйте 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.

Учитывайте hinge angle для творческих сценариев. В фото- и видео-приложениях полураскрытое положение (90°) превращает устройство в подставку: камера снимает, нижняя часть экрана показывает панель управления. Этот сценарий особенно популярен в Samsung Camera и нативных приложениях.

Часто задаваемые вопросы

Как определить, что устройство складное?

Проверьте наличие PackageManager.FEATURE_SENSOR_HINGE_ANGLE. Если true — устройство складное с датчиком угла шарнира. Дополнительно проверьте DisplayFold API.

Как обработать переход из сложенного в разложенный режим?

Подпишитесь на WindowInfoTracker.windowLayoutInfo(). При изменении состояния FoldingFeature перестраивайте интерфейс в соответствии с Window Size Class и положением сгиба.

Какой минимальный SDK для API складных устройств?

Jetpack WindowManager работает на API 14+. Но для FoldingFeature.HALF_OPENED требуется API 24+ (Android 7.0). Дата-сенсор угла шарнира доступен на Android 10+.

Нужно ли создавать отдельные лейауты для складных устройств?

Нет. Используйте Window Size Class и Layoutomization от Jetpack WindowManager. Единый код с проверкой класса размера заменит отдельные макеты ресурсов.

Работают ли складные устройства под водой?

Большинство складных устройств имеют IP48 или IP58 защиту — ограниченная водонепроницаемость. Под водой гибкий дисплей может быть повреждён, поэтому погружение не рекомендуется производителями.

Итоги

  • Foldable Device — устройство с гибким дисплеем, меняющее размер экрана при складывании.
  • Типы — книжные (Galaxy Z Fold), раскладушки (Galaxy Z Flip), двойной экран (Surface Duo).
  • Jetpack WindowManager — API для отслеживания FoldingFeature, состояния и угла сгиба.
  • Window Size Class — переключение между классами при раскладывании устройства.
  • Flex mode — разделение экрана на просмотр и управление при полураскрытии.
  • Тестирование — AVD Foldable в эмуляторе, ADB для управления состоянием.
  • Заключение — складные устройства формируют новый стандарт мобильного опыта, и адаптация приложений под них становится конкурентным преимуществом.

Мы разработаем мобильное приложение под ключ

IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект

Читайте также