기능이 필요해진 배경
이번에 새로운 앱을 준비하며 폴드(플립이 아닌) 디바이스인지 확인해야만 하는 상황이 생겼다.
그렇게 폴드 디바이스인 경우, layout constraints를 조정해 다른 UI를 구성해주기 위함이었다.
다만, 폴드 디바이스를 어떻게 체크할 것인가에 대해 찾아보던 중
"2가지 조건을 충족하면 폴드 디바이스다!" 라는 결론을 낼 수 있었다.
1번째 조건
WindowInfoTracker를 사용해 폴더블 디바이스인지 확인하는 것이다.
developer 사이트 문서에서 확인해보면
WindowInfoTracker에서 FoldingFeature가 있는 경우, 폴더블 디바이스라는 것을 알 수 있다.
https://developer.android.com/develop/ui/compose/layouts/adaptive/foldables/make-your-app-fold-aware
2번째 조건
디바이스의 너비(width)가 600dp 이상인 경우이다.
이 조건은 거의 모든 fold 디바이스에서 적용된다.
아래 구글 블로그 글에서도 확인할 수 있듯
일반 스마트폰에서 600dp이상의 너비를 가지는 디바이스는 없다고 봐도 무방할 것이다.
다만 폴드 디바이스인지 이 조건만 확인하는 경우에는
태블릿도 폴드 디바이스로 판단할 수 있기에 1번째 조건과 같이 고려되어야 했다.
https://android-developers.googleblog.com/2023/06/detecting-if-device-is-foldable-tablet.html
결론
폴드 디바이스에 관련해 대응해 본 것은 이번이 처음이라 로직 자체가 상당히 엉성할 수 있겠다는 생각이 들었다.
또한, 중국에서는 폴드 디바이스가 프리미엄폰으로써 상당한 인기를 얻고 있다는 점에서도
폴더블 디바이스 대응에 더 신경써야 겠다는 생각을 했다.
'Android' 카테고리의 다른 글
Android Phone Number Format(자동 하이픈 추가) (0) | 2024.11.24 |
---|---|
Android Compose WebView PullToRefresh 기능 구현하기 (0) | 2024.11.19 |
Android Material Theme Elevation 해제하기 (4) | 2024.09.26 |
Android Material Library Update Story(feat. BottomNavigationView) (0) | 2024.07.14 |
Android Library Manifest Attributes Replace (0) | 2024.07.04 |