Foldable Device (складное устройство) — это класс мобильных гаджетов с гибким дисплеем, который меняет форм-фактор при складывании и раскладывании. Такие устройства работают и как компактный телефон, и как планшет — в зависимости от положения экрана. По данным Android Developers (2025), глобальный рынок складных устройств вырос на 42% за 2024 год, и адаптация приложений под этот форм-фактор становится обязательной для крупных проектов.
Главное
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 и позволяет приложению растягиваться на оба экрана.
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 ->
// 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 и положением сгиба.
Jetpack WindowManager работает на API 14+. Но для FoldingFeature.HALF_OPENED требуется API 24+ (Android 7.0). Дата-сенсор угла шарнира доступен на Android 10+.
Нет. Используйте Window Size Class и Layoutomization от Jetpack WindowManager. Единый код с проверкой класса размера заменит отдельные макеты ресурсов.
Большинство складных устройств имеют IP48 или IP58 защиту — ограниченная водонепроницаемость. Под водой гибкий дисплей может быть повреждён, поэтому погружение не рекомендуется производителями.
Итоги
Мы разработаем мобильное приложение под ключ
IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.
Читайте также