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 스튜디오 Quail의 최종 안정화 출시 버전입니다. Android 스튜디오의 새로운 기능을 사용하면 AI를 사용하여 프리미엄 앱을 효율적이고 효과적으로 빌드할 수 있습니다.
Amman Asfaw • 읽는 데 5분 소요 -
제품 소식건전한 Android 생태계를 유지하는 것은 모든 앱과 게임이 역할을 하는 공동의 약속입니다.
Raghavendra Hareesh Pottamsetty • 읽는 데 4분 소요
Android 개발 관련 최신 정보를 이메일로 받아 보세요. 매주