Foldable Device (skládací zařízení) — je třída mobilních gadgetů s flexibilním displejem, který mění form faktor při skládání a rozkládání. Taková zařízení fungují jako kompaktní telefon i jako tablet — v závislosti na poloze obrazovky. Podle Android Developers (2025) vzrostl globální trh se skládacími zařízeními o 42 % v roce 2024 a přizpůsobení aplikací tomuto form faktoru se stává povinným pro velké projekty.
Hlavní body
Foldable Device — je mobilní zařízení s flexibilním OLED displejem, který lze složit bez poškození matrice. Ve složeném stavu je takové zařízení kompaktní a vejde se do kapsy, v rozloženém stavu poskytuje obrazovku o velikosti tabletu. Prvním masově vyráběným skládacím zařízením byl Royole FlexPai (2018), ale kategorii zpopularizovaly Samsung Galaxy Fold (2019) a Huawei Mate X.
Klíčovým rozdílem mezi skládacími a tradičními zařízeními je přítomnost pantu (hinge) a flexibilního displeje. Při skládání se displej nerozbije, ale ohne se po poloměru určeném konstrukcí pantu. Moderní technologie (UTG — Ultra Thin Glass, 2020+ a Samsung Infinity Flex) vydrží až 200 000 cyklů skládání bez viditelného poškození.
Pro vývojáře představují skládací zařízení tři výzvy: změnu velikosti obrazovky při rozkládání, přítomnost přehybu (crease) a práci v pootevřeném stavu (tabletop mode), kdy zařízení stojí na povrchu pod úhlem.
Knižní (book-style) — Galaxy Z Fold, Google Pixel Fold, OnePlus Open. Externí displej (cover screen) pro použití ve složeném stavu, vnitřní flexibilní displej (inner screen) pro režim tabletu. Poměr stran externího displeje je přibližně 22:9, vnitřního — přibližně 6:5 nebo 4:3.
Flipové (flip-style) — Galaxy Z Flip, Motorola Razr, Oppo Find N2 Flip. Vertikální skládání, externí displej pro oznámení (1.5–3.5 palce), vnitřní displej — standardní telefon (6.7–7 palce). Hlavní vlastnost — při pootevření (flex mode) může aplikace rozdělit obrazovku na dvě zóny: ovládání nahoře, obsah dole.
Dvojitý displej — Microsoft Surface Duo, Lenovo ThinkPhone. Dva samostatné displeje s pantem uprostřed. Při rozložení tvoří společnou plochu, ale s fyzickou mezerou mezi displeji. API zohledňuje úhel pantu a umožňuje aplikaci roztáhnout se na oba displeje.
Google poskytuje Jetpack WindowManager pro práci se skládacími zařízeními. API zahrnuje tři klíčové komponenty: WindowLayoutInfo — informace o umístění přehybu (fold), WindowPosture — fyzickou polohu zařízení a FoldingFeature — popis oblasti ohybu: orientaci, stav a úhel.
FoldingFeature obsahuje typ skládání (hinge — pant, fold — flexibilní displej), stav (flat — otevřeno, half-opened — pootevřeno, folded — zavřeno) a úhel ohybu (od 0 do 180 stupňů). Úhel je k dispozici na zařízeních s úhlovým senzorem (Galaxy Z Fold, Pixel Fold).
val windowInfoRepository =
WindowInfoTracker.getOrCreate(context)
windowInfoRepository.windowLayoutInfo(context)
.collect { layoutInfo ->
layoutInfo.displayFeatures
.filterIsInstance<FoldingFeature>()
.forEach { feature ->
// zpracování skládání
}
}
Pro určení, zda je zařízení skládací, použijte PackageManager.hasSystemFeature("android.hardware.sensor.hinge_angle"). Na zařízení s pantem je tento senzor přítomen — na běžných telefonech chybí.
Přizpůsobení rozhraní — hlavní úkol vývojáře při podpoře skládacích zařízení. Při rozkládání se šířka okna může zdvojnásobit a rozhraní se musí přeskupit z jednosloupcového na vícesloupcové. Použijte Window Size Class pro přepínání mezi rozvrženími — při rozkládání se třída mění z Compact na Expanded.
Věnujte zvláštní pozornost zpracování změn konfigurace. Když uživatel rozloží zařízení, Activity může být znovu vytvořeno. Pokud aplikace neukládá stav, uživatel ztratí zadaná data nebo pozici posouvání. Použijte ViewModel pro data obrazovky a onSaveInstanceState pro stav UI.
Pro flex mode (tabletop mode) by měl design rozdělit obrazovku na dvě funkční zóny. Horní — prohlížení obsahu (video, galerie, seznam), dolní — ovládání (tlačítka, ovladače, klávesnice). Tento vzor se používá ve videopřehrávačích: YouTube na Galaxy Z Flip zobrazuje video nahoře, doporučení a tlačítka dole.
Testování — jeden z nejsložitějších aspektů vývoje pro skládací zařízení. Android Emulator umožňuje simulaci skládacích zařízení prostřednictvím AVD s konfigurací "Foldable" (vnitřní 7.6palcový displej, vnější 4.6palcový displej). Emulátor podporuje přepínání mezi složeným a rozloženým stavem.
Pro testování v emulátoru se používá ADB. Příkaz adb shell am broadcast -a android.intent.action.VIEW -e mode expand rozloží zařízení, adb shell am broadcast -a android.intent.action.VIEW -e mode fold jej složí. Také lze změnit úhel ohybu v okně emulátoru.
Skutečné testování na fyzických zařízeních se doporučuje pro kontrolu pocitu přechodu, kvality pantu a viditelnosti přehybu. Hlavní modely pro testování: Samsung Galaxy Z Fold 6 (knižní), Samsung Galaxy Z Flip 6 (flipový), Google Pixel Fold, Motorola Razr 50.
Neumisťujte kriticky důležité prvky do oblasti přehybu. Tlačítka, vstupní pole a interaktivní prvky by měly být ve vzdálenosti alespoň 24 dp od linie přehybu. Přehyb (crease) — neodmyslitelná vlastnost flexibilních displejů, jeho viditelnost s každou generací klesá, ale zcela nezmizí.
Používejte kontinuitu místo přerušení. Při rozkládání by měl obsah plynule přecházet z vnějšího na vnitřní displej nebo se rozšířit na celou plochu. Vyhněte se načítání nové Activity — použijte přepočet rozvržení v rámci stejné obrazovky. Jetpack WindowManager sleduje změny a informuje aplikaci prostřednictvím WindowLayoutInfo.
Zohledněte úhel pantu pro kreativní scénáře. Ve foto a video aplikacích mění pootevřená poloha (90°) zařízení na stojánek: kamera natáčí, spodní část obrazovky zobrazuje ovládací panel. Tento scénář je obzvláště populární v Samsung Camera a nativních aplikacích.
Často kladené otázky
Zkontrolujte přítomnost PackageManager.FEATURE_SENSOR_HINGE_ANGLE. Pokud je true — zařízení je skládací s úhlovým senzorem pantu. Dále zkontrolujte DisplayFold API.
Přihlaste se k odběru WindowInfoTracker.windowLayoutInfo(). Při změně stavu FoldingFeature přeuspořádejte rozhraní podle Window Size Class a polohy přehybu.
Jetpack WindowManager funguje na API 14+. Ale pro FoldingFeature.HALF_OPENED je vyžadováno API 24+ (Android 7.0). Senzor úhlu pantu je k dispozici na Android 10+.
Ne. Použijte Window Size Class a Layoutomization z Jetpack WindowManager. Jednotný kód s kontrolou třídy velikosti nahradí samostatná rozvržení zdrojů.
Většina skládacích zařízení má ochranu IP48 nebo IP58 — omezenou vodotěsnost. Pod vodou může být flexibilní displej poškozen, proto ponoření není výrobci doporučováno.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také