티스토리 뷰

반응형

최근 Samsung Galaxy Z Flip 제품이 나오며 휴대성과 디스플레이의 확장성 모두 만족할 수 있게 되었습니다.

다양한 디바이스 환경에 맞춰 Android Jetpack에서 Window(창 관리자)가 추가되어 접이식 장치 디바이스 화면상태를 제공하고 있습니다.

더 다양한 디바이스 환경에 따른 화면 구성을 위해 Window APi을 활용하여 디바이스 화면 상태를 체크하는 방법에 대해서 알아보겠습니다.

 

Samsung Z Flip News

 

 

환경 구성

 

build.gradle 파일에 Google Maven 저장소에 저장된 Window Manager 오픈소스를 추가합니다.

 

 

기기 상태 확인

 

기기 상태 확인을 위해 windowManager 의 디바이스 상태 변경 리스너를 등록합니다.

디바이스 상태 체크에 대해 Consumer interface을 통해 Callback 처리합니다.

 

 

주의할 점

 

주의할 점으로는 Proguard 적용 시 AbstractMethodError가 발생할 수 있다고 합니다.

proguard-rules 에 Window API을 예외처리하여 Error을 방지합니다. (버전업 되면서 해당 이슈는 사라질 것으로 예상됩니다.)

 

 

마무리

 

언제 Window Manager을 활용할까요?

Foldable 장치에 대한 UI 구성 시 (접힌 상태에 따른 화면 변경) 활용 할 수 있을 것으로 예상됩니다.

예를들어 반접힌 상태에서 보여주는 화면 별도로 구성하여 반을 접은 상태에서는 최소한의 UI만 보여주고 완전히 펼쳐진 상태에서는 모든 화면을 보여주는 등 기획에 맞춰서 다양하게 구성할 수 있을 것으로 생각됩니다.

아직 초기 단계이기에 WindowManager 사용하면서 버그 및 개선 사항을 만나게 될 것입니다. Google IssueTracker 에 등록하는건 어떠신가요?

 

 

참고

Android Developer - Window : Window Manger API 문서

New Jetpack WindowManager : WindowManager 자세한 설명

Preview next feature in AndroidX : Proguard 간략한 설명 및 활용법, 주의사항 설명

All in the Flex: YouTube Gets New Optimization for the Galaxy Z Flip : Samsung Z Flip News

반응형
댓글