Jetpack WindowManager 1.5.0이 안정화되었습니다.
이번 출시에서는 WindowManager의 강력한 적응형 기반을 바탕으로 모든 화면 크기에서 멋지게 보이는 세련된 적응형 UI를 더욱 쉽게 만들 수 있습니다. Android 생태계가 계속 성장함에 따라 사용자는 휴대전화와 폴더블부터 태블릿, 커넥티드 디스플레이, Chromebook, 심지어 주차 모드의 자동차 디스플레이에 이르기까지 그 어느 때보다 다양한 기기에서 앱을 사용하고 있습니다.
WindowManager 1.5는 이러한 다양한 기기 환경을 위한 더 나은 도구를 제공하는 데 중점을 둡니다.
WindowManager 1.5의 새로운 기능
이 안정화 버전에서는 매우 큰 화면을 위한 새로운 중단점을 도입하고, 활동 삽입 API를 개선하며, 창 측정항목 계산의 유연성을 높입니다.
새 창 크기 클래스: 대형 및 초대형
1.5에서 가장 큰 업데이트는 대형과 특대형이라는 두 가지 새로운 너비 창 크기 클래스가 추가된 것입니다.
창 크기 클래스는 적응형 레이아웃을 디자인하고 개발하는 데 도움이 되는 공식적인 체계적인 표시 영역 중단점 세트입니다. 1.5에서는 일반적인 태블릿을 넘어가는 화면에 대한 안내를 확장합니다.
새 너비 중단점은 다음과 같습니다.
- 대형: 너비가 1200dp~1600dp인 경우
- 특대: 너비가 1600dp 이상인 경우
디스플레이 너비에 따른 다양한 창 크기 클래스
이러한 측정항목이 중요한 이유는 무엇인가요?
Android 16 QPR1 베타 2부터 Android는 연결된 디스플레이를 지원하여 사용자가 외부 디스플레이를 기기에 연결하고 대형 화면이 있는 데스크톱과 같은 도구로 변환할 수 있습니다.
휴대전화가 외부 디스플레이에 연결되어 있고 외부 디스플레이에서 데스크톱 세션이 실행되고 있습니다.
이 새로운 기능을 사용할 수 있으므로 더 큰 디스플레이를 포함하는 의견 기반 안내가 중요합니다.
이러한 매우 큰 화면에서는 태블릿의 확장 레이아웃을 단순히 확대하는 것이 항상 최상의 사용자 환경은 아닙니다. 예를 들어 이메일 클라이언트는 확장 창 크기 클래스에서 두 개의 창 (편지함과 메일)을 편안하게 표시할 수 있습니다. 하지만 특대형 데스크톱 모니터에서는 이메일 클라이언트가 3개 또는 4개의 창을 한 번에 표시할 수 있습니다. 예를 들어 편지함, 메일 목록, 전체 메일 내용, 캘린더/할 일 패널을 한 번에 표시할 수 있습니다.
WindowManager 1.5는 매우 큰 디스플레이 크기에 공식 중단점을 제공하여 생산적이고 정보가 많은 데스크톱 환경을 위해 특별히 설계된 레이아웃을 도입하라는 명확한 신호를 제공합니다.
창 크기 클래스는 Set<WindowSizeClass> 유형을 확장하는 androidx.window.core.layout 라이브러리 확장 함수인 computeWindowSizeClass()를 사용하여 계산할 수 있습니다.
프로젝트에 새 창 크기 클래스를 포함하려면 WindowSizeClass.BREAKPOINTS_V1 대신 WindowSizeClass.BREAKPOINTS_V2 세트에서 함수를 호출하면 됩니다.
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: 이제 Activity 컨텍스트뿐만 아니라 Application 컨텍스트에서도 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와 Google Play는 수십억 명의 사용자가 안심하고 앱을 계속 즐길 수 있고 개발자 혁신이 번성할 수 있도록 최선을 다하고 있습니다.
Vijaya Kaza • 3분 읽기
-
제품 소식
Jetpack Compose 2026년 4월 버전이 안정화되었습니다. 이 버전에는 핵심 Compose 모듈 버전 1.11 (전체 BOM 매핑 참고), 공유 요소 디버그 도구, 트랙패드 이벤트 등이 포함되어 있습니다.
Meghan Mehta • 읽는 데 5분 소요
소식 받아보기
Android 개발 관련 최신 정보를 이메일로 받아 보세요.