Jetpack WindowManager 1.5.0이 이제 안정화되었음을 알려드립니다.
이 출시 버전은 WindowManager의 강력한 적응형 기반을 토대로 모든 화면 크기에서 멋지게 보이는 세련된 적응형 UI를 더욱 쉽게 만들 수 있도록 합니다. Android 생태계가 계속 성장함에 따라 사용자는 휴대전화와 폴더블에서 태블릿, 연결된 디스플레이, Chromebook, 심지어 주차 모드의 자동차 디스플레이에 이르기까지 그 어느 때보다 다양한 기기에서 앱을 사용하고 있습니다.
WindowManager 1.5는 이러한 다양한 기기 환경을 위한 더 나은 도구를 제공하는 데 중점을 둡니다.
WindowManager 1.5의 새로운 기능
이 안정화 출시 버전에서는 매우 큰 화면을 위한 새로운 중단점을 도입하고, 활동 삽입 API를 개선하며, 창 측정항목을 계산하는 데 더 많은 유연성을 제공합니다.
새로운 창 크기 클래스: 대형 및 초대형
1.5의 가장 큰 업데이트는 대형 및 초대형이라는 두 가지 새로운 너비 창 크기 클래스가 추가된 것입니다.
창 크기 클래스는 적응형 레이아웃을 디자인하고 개발하는 데 도움이 되는 Google의 공식적인 표시 영역 중단점 세트입니다. 1.5에서는 일반적인 태블릿을 넘어가는 화면에 대한 이 가이드를 확장합니다.
다음은 새로운 너비 중단점입니다.
- 대형: 너비가 1200dp~1600dp인 경우
- 초대형: 너비가 1600dp 이상인 경우
디스플레이 너비를 기반으로 하는 다양한 창 크기 클래스
이러한 클래스가 중요한 이유는 무엇인가요?
Android 16 QPR1 베타 2부터 Android는 연결된 디스플레이를 지원하므로 사용자는 외부 디스플레이를 기기에 연결하고 대형 화면이 있는 데스크톱과 같은 도구로 변환할 수 있습니다.
외부 디스플레이에 연결된 휴대전화, 외부 디스플레이의 데스크톱 세션
이 새로운 기능을 사용하면 더 큰 디스플레이를 포함하는 데 대한 체계적인 안내가 중요합니다.
이러한 매우 큰 화면에서는 태블릿의 확장 레이아웃을 단순히 확장하는 것이 항상 최상의 사용자 환경은 아닙니다. 예를 들어 이메일 클라이언트는 확장 창 크기 클래스에서 두 개의 창 (메일함 및 메시지)을 편안하게 표시할 수 있습니다. 하지만 초대형 데스크톱 모니터에서는 이메일 클라이언트가 세 개 또는 네 개의 창 (예: 메일함, 메시지 목록, 전체 메시지 콘텐츠, 캘린더/작업 패널)을 한 번에 우아하게 표시할 수 있습니다.
WindowManager 1.5는 매우 큰 디스플레이 크기에 대한 공식 중단점을 제공하여 생산적이고 정보가 풍부한 데스크톱 환경을 위해 특별히 설계된 레이아웃을 도입하라는 명확한 신호를 제공합니다.
창 크기 클래스는 computeWindowSizeClass()를 사용하여 계산할 수 있습니다. 이는 androidx.window.core.layout 라이브러리 확장 함수로, Set<WindowSizeClass> 유형을 확장합니다.
프로젝트에 새 창 크기 클래스를 포함하려면 WindowSizeClass.BREAKPOINTS_V2 세트에서 WindowSizeClass.BREAKPOINTS_V1 대신 함수를 호출하면 됩니다.
val currentWindowMetrics = WindowMetricsCalculator.getOrCreate() .computeCurrentWindowMetrics(LocalContext.current) val sizeClass = WindowSizeClass.BREAKPOINTS_V2 .computeWindowSizeClass(currentWindowMetrics)
그런 다음 앱에 최소한 그 정도의 공간이 있는지 확인한 후 올바른 레이아웃을 적용합니다.
if(sizeClass.isWidthAtLeastBreakpoint(
WindowSizeClass.WIDTH_DP_LARGE_LOWER_BOUND)){
...
// window is at least 1200 dp wide
}적응형 라이브러리
Compose Material 3 적응형 라이브러리를 사용하면 창 크기 클래스 또는 기기 자세와 같은 현재 창 구성에 따라 자동으로 조정되는 적응형 UI를 만들 수 있습니다.
좋은 소식은 라이브러리가 이미 새로운 중단점으로 업데이트되었다는 것입니다. 이제 출시 후보 단계에 있는 버전 1.2부터 기본 창 스캐폴드 지시어 함수는 대형 및 초대형 창 너비 크기 클래스를 지원합니다.
Gradle 빌드 파일에서 새 중단점을 사용하겠다고 선언하여 선택하기만 하면 됩니다.
currentWindowAdaptiveInfo( supportLargeAndXLargeWidth = true)
추가 개선사항
- 활동 삽입 - 자동 저장 및 복원: 이제 WindowManager가 활동 삽입 분할의 상태를 자동으로 저장하고 복원할 수 있습니다. 이렇게 하면 프로세스 재작성 전반에서 사용자의 레이아웃을 유지하여 더 안정적이고 일관된 환경을 제공할 수 있습니다. 개발자는 더 이상 상태를 수동으로 저장하고 복원할 필요가 없지만 EmbeddingConfiguration#isAutoSaveEmbeddingState 속성을 설정하여 자동으로 선택할 수 있습니다.
- 확장된 WindowMetrics: 이제 활동 컨텍스트뿐만 아니라 애플리케이션 컨텍스트에서도 WindowMetrics를 계산할 수 있습니다. 이렇게 하면 앱의 여러 부분에서 창 정보에 더 유연하게 액세스할 수 있습니다.
시작하는 방법
Android 프로젝트에서 새로운 대형 및 초대형 크기 클래스와 기타 1.5 기능을 사용하려면 build.gradle.kts에서 앱 종속 항목을 최신 안정화 버전으로 업데이트하세요.
dependencies {
implementation("androidx.window:window:1.5.0")
// or, if you're using the WindowManager testing library:
testImplementation("androidx.window:window-testing:1.5.0")
}WindowManager 1.5는 Android 폼 팩터에서 실행되는 완전히 적응형 앱을 만들기 위한 또 다른 단계입니다. 변경사항 및 버그 수정의 전체 목록은 공식 출시 노트를 참고하세요.
즐겁게 코딩해 보세요!
계속 읽기
-
제품 소식
Android에서 모바일 컴퓨팅과 데스크톱 컴퓨팅을 더 가깝게 통합하는 데 있어 중요한 이정표를 발표하게 되어 기쁩니다. Android 16 QPR3 출시와 함께 연결된 디스플레이 지원이 정식 버전으로 출시되었습니다.
Francesco Romano • 7분 읽기
-
제품 소식
이제 Android Emulator를 사용하여 다중 기기 상호작용을 그 어느 때보다 쉽게 테스트할 수 있습니다.
Steven Jenkins • 2분 읽기
-
제품 소식
모든 개발자의 AI 워크플로와 요구사항은 고유하며 AI가 개발에 어떻게 도움이 되는지 선택할 수 있는 것이 중요합니다. 1월에는 Android 스튜디오에서 AI 기능을 구동하기 위해 로컬 또는 원격 AI 모델을 선택할 수 있는 기능을 도입했습니다.
Matthew Warner • 2분 읽기
소식 받아 보기
Android 개발 관련 최신 정보를 이메일로 받아 보세요. 매주