Foldable Device (nakatutupòng device) — ay isang klase ng mobile gadgets na may flexible display na nagbabago ng form factor kapag tinutupi at binubuksan. Ang mga ganitong device ay gumagana kapwa bilang compact phone at tablet — depende sa posisyon ng screen. Ayon sa Android Developers (2025), ang pandaigdigang merkado ng nakatutupòng device ay lumago ng 42% noong 2024, at ang pag-adapt ng mga application sa form factor na ito ay nagiging mandatory para sa malalaking proyekto.
Mga pangunahing punto
Foldable Device — ay isang mobile device na may flexible OLED display na maaaring tupiin nang hindi nasisira ang matrix. Sa nakatuping estado, ang naturang device ay compact at kasya sa bulsa, sa nakabukas na estado ay nagbibigay ng screen na kasing laki ng tablet. Ang unang mass-produced na nakatutupòng device ay ang Royole FlexPai (2018), ngunit pinasikat ang kategorya ng Samsung Galaxy Fold (2019) at Huawei Mate X.
Ang pangunahing pagkakaiba sa pagitan ng nakatutupòng at tradisyonal na device ay ang pagkakaroon ng hinge at flexible display. Kapag tinutupi, ang display ay hindi nasisira, kundi yumuyuko sa radius na tinutukoy ng konstruksyon ng hinge. Ang mga makabagong teknolohiya (UTG — Ultra Thin Glass, 2020+ at Samsung Infinity Flex) ay kayang tumagal ng hanggang 200,000 cycle ng pagtupi nang walang nakikitang pinsala.
Para sa mga developer, ang nakatutupòng device ay lumilikha ng tatlong hamon: pagbabago ng laki ng screen kapag binubuksan, pagkakaroon ng crease, at pagtatrabaho sa kalahating bukas na estado (tabletop mode), kapag ang device ay nakatayo sa ibabaw sa isang anggulo.
Book-style — Galaxy Z Fold, Google Pixel Fold, OnePlus Open. Panlabas na screen (cover screen) para sa paggamit sa nakatuping estado, panloob na flexible display (inner screen) para sa tablet mode. Aspect ratio ng panlabas na screen ay humigit-kumulang 22:9, ng panloob — humigit-kumulang 6:5 o 4:3.
Flip-style — Galaxy Z Flip, Motorola Razr, Oppo Find N2 Flip. Vertical na pagtupi, panlabas na display para sa mga notification (1.5–3.5 pulgada), panloob na display — standard phone (6.7–7 pulgada). Pangunahing tampok — sa kalahating bukas (flex mode), maaaring hatiin ng application ang screen sa dalawang zone: kontrol sa itaas, nilalaman sa ibaba.
Dual screen — Microsoft Surface Duo, Lenovo ThinkPhone. Dalawang magkahiwalay na display na may hinge sa gitna. Kapag binuksan, bumubuo ng karaniwang lugar, ngunit may pisikal na puwang sa pagitan ng mga screen. Isinasaalang-alang ng API ang anggulo ng hinge at pinapayagan ang application na umabot sa parehong screen.
Ang Google ay nagbibigay ng Jetpack WindowManager para sa pagtatrabaho sa nakatutupòng device. Ang API ay may kasamang tatlong pangunahing bahagi: WindowLayoutInfo — impormasyon tungkol sa lokasyon ng tupi (fold), WindowPosture — pisikal na posisyon ng device, at FoldingFeature — paglalarawan ng lugar ng tupi: orientation, estado, at anggulo.
FoldingFeature ay naglalaman ng uri ng tupi (hinge — hinge, fold — flexible display), estado (flat — bukas, half-opened — kalahating bukas, folded — sarado) at anggulo ng tupi (mula 0 hanggang 180 degrees). Ang anggulo ay available sa mga device na may angle sensor (Galaxy Z Fold, Pixel Fold).
val windowInfoRepository =
WindowInfoTracker.getOrCreate(context)
windowInfoRepository.windowLayoutInfo(context)
.collect { layoutInfo ->
layoutInfo.displayFeatures
.filterIsInstance<FoldingFeature>()
.forEach { feature ->
// paghawak ng pagtupi
}
}
Upang matukoy kung ang device ay nakatutupò, gamitin ang PackageManager.hasSystemFeature("android.hardware.sensor.hinge_angle"). Sa device na may hinge, ang sensor na ito ay naroroon — sa mga ordinaryong telepono ay wala.
Ang pag-adapt ng interface — pangunahing gawain ng developer sa pagsuporta sa nakatutupòng device. Kapag binuksan, ang lapad ng window ay maaaring dumoble at ang interface ay dapat mag-rearrange mula sa single-column patungong multi-column. Gamitin ang Window Size Class para sa paglipat sa pagitan ng mga layout — kapag binuksan, ang klase ay nagbabago mula Compact patungong Expanded.
Bigyang-pansin ang pag-handle ng mga pagbabago sa configuration. Kapag binuksan ng user ang device, ang Activity ay maaaring muling likhain. Kung hindi sine-save ng application ang estado, mawawala sa user ang mga inilagay na data o posisyon ng scroll. Gamitin ang ViewModel para sa data ng screen at onSaveInstanceState para sa UI state.
Para sa flex mode (tabletop mode), dapat hatiin ng disenyo ang screen sa dalawang functional zone. Itaas — pagtingin ng nilalaman (video, gallery, listahan), ibaba — kontrol (mga button, controller, keyboard). Ang pattern na ito ay ginagamit sa mga video player: YouTube sa Galaxy Z Flip ay nagpapakita ng video sa itaas, mga rekomendasyon at button sa ibaba.
Ang pagsubok — isa sa pinakamahirap na aspeto ng pag-develop para sa nakatutupòng device. Pinapayagan ng Android Emulator ang simulation ng nakatutupòng device sa pamamagitan ng AVD na may configuration na "Foldable" (internal na 7.6-pulgadang display, external na 4.6-pulgadang display). Sinusuportahan ng emulator ang paglipat sa pagitan ng nakatupi at nakabukas na estado.
Para sa pagsubok sa emulator, ginagamit ang ADB. Ang command na adb shell am broadcast -a android.intent.action.VIEW -e mode expand ay nagbubukas ng device, adb shell am broadcast -a android.intent.action.VIEW -e mode fold ay tumutupi nito. Maaari ring baguhin ang anggulo ng tupi sa window ng emulator.
Ang tunay na pagsubok sa pisikal na device ay inirerekomenda upang suriin ang pakiramdam ng transisyon, kalidad ng hinge, at visibility ng tupi. Mga pangunahing modelo para sa pagsubok: Samsung Galaxy Z Fold 6 (book-style), Samsung Galaxy Z Flip 6 (flip-style), Google Pixel Fold, Motorola Razr 50.
Huwag ilagay ang mga kritikal na elemento sa lugar ng tupi. Ang mga button, input field, at interactive na elemento ay dapat nasa layo na hindi bababa sa 24 dp mula sa linya ng tupi. Ang tupi (crease) — likas na pag-aari ng mga flexible screen, ang visibility nito ay bumababa sa bawat henerasyon, ngunit hindi ganap na nawawala.
Gamitin ang pagpapatuloy sa halip na pagkaantala. Kapag binuksan, ang nilalaman ay dapat dumaloy nang maayos mula sa panlabas patungo sa panloob na screen o lumawak sa buong lugar. Iwasan ang pag-load ng bagong Activity — gamitin ang muling pagkalkula ng layout sa loob ng parehong screen. Jetpack WindowManager ay sumusubaybay sa mga pagbabago at nag-aabiso sa application sa pamamagitan ng WindowLayoutInfo.
Isaalang-alang ang anggulo ng hinge para sa mga creative scenario. Sa mga photo at video application, ang kalahating bukas na posisyon (90°) ay ginagawang stand ang device: ang camera ay kumukuha, ang ibabang bahagi ng screen ay nagpapakita ng control panel. Ang scenario na ito ay lalong popular sa Samsung Camera at native na application.
Mga madalas itanong
Suriin ang pagkakaroon ng PackageManager.FEATURE_SENSOR_HINGE_ANGLE. Kung true — ang device ay nakatutupò na may angle sensor ng hinge. Suriin din ang DisplayFold API.
Mag-subscribe sa WindowInfoTracker.windowLayoutInfo(). Kapag nagbago ang estado ng FoldingFeature, i-rearrange ang interface ayon sa Window Size Class at posisyon ng tupi.
Ang Jetpack WindowManager ay gumagana sa API 14+. Ngunit para sa FoldingFeature.HALF_OPENED ay kinakailangan ang API 24+ (Android 7.0). Ang angle sensor ng hinge ay available sa Android 10+.
Hindi. Gamitin ang Window Size Class at Layoutomization mula sa Jetpack WindowManager. Ang iisang code na may pagsusuri ng size class ay papalit sa hiwalay na resource layout.
Karamihan sa nakatutupòng device ay may IP48 o IP58 na proteksyon — limitadong hindi tinatagusan ng tubig. Sa ilalim ng tubig, ang flexible display ay maaaring masira, kaya ang pagbabad ay hindi inirerekomenda ng mga gumagawa.
Konklusyon
Gagawa kami ng mobile application na turnkey
Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.
Basahin din