티스토리 뷰
최근 Samsung Galaxy Z Flip 제품이 나오며 휴대성과 디스플레이의 확장성 모두 만족할 수 있게 되었습니다.
다양한 디바이스 환경에 맞춰 Android Jetpack에서 Window(창 관리자)가 추가되어 접이식 장치 디바이스 화면상태를 제공하고 있습니다.
더 다양한 디바이스 환경에 따른 화면 구성을 위해 Window APi을 활용하여 디바이스 화면 상태를 체크하는 방법에 대해서 알아보겠습니다.
환경 구성
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
'프로그래밍 > Android' 카테고리의 다른 글
Stetho Library 를 사용해 보자 (0) | 2020.06.11 |
---|---|
앱 등록 거절 Malicious Behavior Policy 해결하기 (3) | 2020.06.10 |
[Android] RecyclerView 깜박임 방지 방법 (0) | 2020.05.18 |
[Android] STOMP Client 맛보기 (0) | 2020.04.14 |
ProcessLifecycleOwner 사용해보기 (0) | 2020.03.26 |
- Kotlin
- 탁구
- missionchina
- view
- 패턴
- 디자인패턴
- Android
- 스코어헬퍼
- push
- 안드로이드
- 임용고시
- 점수판
- 고시문
- 고시문헬퍼
- IOS
- 알고리즘
- Android Studio
- issue
- flutter
- DI
- 선교
- missioon
- java
- RXjava
- 미션차이나센터
- 코틀린
- MCC
- IT
- swift
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |