Foldable Device(折りたたみデバイス)は、折りたたみや展開時にフォームファクターが変化するフレキシブルディスプレイを備えたモバイルガジェットのクラスです。このようなデバイスは、画面の位置に応じてコンパクトな電話としてもタブレットとしても機能します。Android Developers(2025)によると、折りたたみデバイスの世界市場は2024年に42%成長し、このフォームファクターへのアプリケーションの適応は大規模プロジェクトにとって必須になりつつあります。
主要ポイント
Foldable Deviceとは、マトリックスを損傷することなく折りたたむことができるフレキシブルOLEDディスプレイを備えたモバイルデバイスです。折りたたんだ状態ではコンパクトでポケットに収まり、展開するとタブレットサイズの画面を提供します。最初の量産型折りたたみデバイスはRoyole FlexPai(2018年)でしたが、このカテゴリーを普及させたのはSamsung Galaxy Fold(2019年)とHuawei Mate Xです。
折りたたみデバイスと従来のデバイスの主な違いは、ヒンジ(hinge)とフレキシブルディスプレイの存在です。折りたたむ際、ディスプレイは破損せず、ヒンジの設計によって決まる半径に沿って曲がります。最新技術(UTG — Ultra Thin Glass、2020年以降、およびSamsung Infinity Flex)は、目に見える損傷なしに最大200,000回の折りたたみサイクルに耐えることができます。
開発者にとって、折りたたみデバイスは3つの課題を生み出します:展開時の画面サイズの変更、クリース(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)でアプリケーションが画面を2つのゾーンに分割できることです:上部にコントロール、下部にコンテンツ。
デュアルスクリーン — Microsoft Surface Duo、Lenovo ThinkPhone。中央にヒンジを持つ2つの独立したディスプレイ。展開すると、共通の領域を形成しますが、ディスプレイ間に物理的な隙間があります。APIはヒンジ角度を考慮し、アプリケーションが両方の画面にまたがることを可能にします。
Googleは折りたたみデバイスでの作業のためにJetpack WindowManagerを提供しています。APIには3つの主要コンポーネントが含まれます: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")を使用します。このセンサーはヒンジ付きデバイスに存在し、通常の電話にはありません。
インターフェースの適応は、折りたたみデバイスをサポートする際の開発者の主要なタスクです。展開時にはウィンドウの幅が2倍になり、インターフェースはシングルカラムからマルチカラムレイアウトに再構築する必要があります。レイアウトを切り替えるにはWindow Size Classを使用します — 展開時にクラスがCompactからExpandedに変わります。
構成変更の処理には特に注意が必要です。ユーザーがデバイスを展開すると、Activityが再作成される可能性があります。アプリケーションが状態を保存しない場合、ユーザーは入力したデータやスクロール位置を失います。画面データにはViewModelを、UI状態にはonSaveInstanceStateを使用してください。
フレックスモード(tabletop mode)では、デザインは画面を2つの機能ゾーンに分割する必要があります。上部はコンテンツ表示用(動画、ギャラリー、リスト)、下部は操作用(ボタン、コントローラー、キーボード)です。このパターンは動画プレーヤーで適用されています:Galaxy Z FlipのYouTubeは上部に動画、下部に推奨事項とボタンを表示します。
テストは、折りたたみデバイス向け開発の最も難しい側面の1つです。Android Emulatorは、「Foldable」構成(内部7.6インチディスプレイ、外部4.6インチディスプレイ)のAVDを使用して折りたたみデバイスをシミュレートできます。エミュレータは折りたたみ状態と展開状態の切り替えをサポートしています。
エミュレータでのテストには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)はフレキシブル画面に固有の特性であり、その視認性は世代ごとに減少しますが、完全には消えません。
中断ではなく継続を使用してください。展開時には、コンテンツが外部画面から内部画面へスムーズに移行するか、領域全体に拡張される必要があります。新しい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とJetpack WindowManagerのLayoutomizationを使用してください。サイズクラスのチェックを行う単一のコードで、個別のリソースレイアウトを置き換えることができます。
ほとんどの折りたたみデバイスはIP48またはIP58の保護等級を持ち、限定的な耐水性があります。水中ではフレキシブルディスプレイが損傷する可能性があるため、メーカーは浸水を推奨していません。
まとめ
ターンキー方式のモバイルアプリケーションを開発します
IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。