이벤트 및 프로그램

Android Developer Summit의 최신 Jetpack Compose 업데이트로 모든 화면에 맞게 빌드하기

읽는 데 3분 소요
Rebecca Gutteridge 프로필 보기
Rebecca Gutteridge 개발자 관계 관리자

Android 생태계는 휴대전화, 폴더블, 태블릿, 웨어러블, 차량 내 디스플레이, XR, Googlebook을 아우르는 멀티 디바이스 환경입니다. 이러한 환경에서는 적응형 개발이 사용자가 어디에 있든 도달하는 데 기본이 됩니다.

Jetpack Compose는 Android 전반에서 모든 UI를 빌드하기 위한 표준입니다. 기존 뷰 시스템에서 벗어나면 단일 통합 개발 타겟을 확보하여 다양한 폼 팩터에서 단편화된 코드베이스를 유지관리하는 데 따르는 불편함을 없앨 수 있습니다. 하지만 적응형 레이아웃을 빌드하는 것은 전체 과정의 절반에 불과합니다. 화면이 접히거나, 창 크기가 조절되거나, 앱이 폼 팩터 간에 전환될 때 기존 레이아웃 가정이 무너질 수 있으며, 앱의 상태가 손실되거나 일관성이 없어질 수 있습니다. 

Android 개발자 서밋에서는 Jetpack AppState를 통해 Compose를 데이터 레이어에 더 깊이 통합하여 UI와 아키텍처 전반에서 앱 기반을 발전시키는 방법을 공유했습니다. 또한 FlexBox 및 Grid와 같은 적응형 구성 요소와 에이전트 지원 도구를 제공하여 모든 화면에서 확장할 수 있도록 지원합니다.

아래에서 최근 발표된 주요 내용을 확인하거나 Android 개발자 사이트에서 앱 기반 권장사항을 비롯한 50개 이상의 주문형 세션을 확인하세요. 

핵심 기반을 발전시키고 UI를 넘어 Compose를 확장

곧 출시될 Compose 1.13 안정화 버전에서는 그리드 및 Flexbox를 통한 적응형 레이아웃 기본 지원과 점진적 블러, 서식 있는 텍스트와 같은 새로운 기능을 통해 도구 키트를 확장합니다. 배터리 수명이나 프레임 속도를 희생하지 않고도 메시 그라데이션 및 점진적 블러와 같은 그래픽의 최신 기능을 확인하려면 Jetpack Compose 및 Android의 최신 그래픽 기능으로 앱 개선하기 를 시청하세요.

Compose 텍스트 편집은 시각적 렌더링과 함께 버퍼 기반 아키텍처와 TextFieldState를 사용하여 완전히 다시 작성된 BasicTextField를 제공하여 IME 경합 상태를 제거하고 서식 있는 텍스트 형식의 편집 메커니즘을 지원합니다. 이러한 변화에 대해 자세히 알아보려면  Compose에서 안정적인 텍스트 편집 환경 빌드를 시청하세요. 

이러한 풍부한 시각적 및 대화형 환경을 도입할 때는 원활한 프레임 속도와 짧은 시작 지연 시간을 유지하는 것이 중요합니다. Compose에서 성능 개선하기에서 Perfetto 및 리컴포지션 트레이싱으로 프로파일링하고, 비용이 많이 드는 안티패턴을 식별하고, UI를 원활하게 실행하는 방법을 알아보세요.

Compose는 현재 알파 버전인 Jetpack AppState를 통해 아키텍처 레이어로도 확장되고 있습니다. AppState는 Compose의 스냅샷 시스템을 앱 아키텍처에 도입합니다. Transform를 사용하면 자동 읽기 추적과 일반 Kotlin 제어 흐름을 사용하여 State 및 Flow 입력에서 반응형 상태를 파생할 수 있으며, StateStore는 키가 지정된 컨테이너를 제공하여 활동, 백그라운드 서비스, 위젯, 앱 기능 전반에서 관찰 가능한 상태를 공유할 수 있습니다(선택적 DataStore 지속성 포함). Jetpack AppState를 사용하여 UI를 넘어 Compose 상태를 가져오는 방법을 시청하여 Compose 상태를 스택 위로 이동하면 복잡한 상태 파이프라인이 어떻게 간소화되고 앱의 모든 노출 영역이 어떻게 동기화되는지 알아보세요.

다양한 폼 팩터에 적합한 강력한 탐색 및 입력 시스템 설계

앱이 더 모듈화됨에 따라 탐색과 사용자 입력은 모든 진입점과 화면 크기에서 예측 가능해야 합니다. 버전 1.2에서는 Jetpack Navigation 3가 개발자 소유의 백 스택에 유형 안전성을 갖춘 내장 딥 링크를 제공합니다. Kotlin 직렬화를 사용하면 수신 URI와 인텐트를 강력한 형식의 탐색 키에 직접 매핑하고, 복잡한 인수가 파싱되는 방식을 맞춤설정하고, 합성 백 스택을 지연 빌드하여 뒤로 탐색이 항상 자연스럽게 느껴지도록 할 수 있습니다. 이러한 API의 실제 작동 모습을 보려면 Jetpack Navigation 3을 사용하여 유형 안전 딥 링크 빌드하기를 참고하세요.

입력 처리도 기기 전반에서 멀티모달 상호작용을 지원하도록 발전했습니다. Compose의 계층화된 입력 시스템은 터치를 넘어 트랙패드, 마우스, 물리적 컨트롤을 지원하도록 원활하게 확장됩니다. 폼 팩터 전반에서 포인터 수명 주기, 마우스 오버 상태, 하드웨어 이벤트를 관리하는 방법을 알아보려면 Jetpack Compose를 사용하여 터치스크린을 넘어 입력 상호작용 확장하기를 시청하세요.

대형 화면, 데스크톱 등에서 인터페이스 확장

폴더블, 태블릿, 노트북 간에 이동할 때 인터페이스는 단순히 콘텐츠를 늘려 더 큰 디스플레이를 채우는 것이 아니라 자연스럽게 적응해야 합니다. Compose 개발을 통한 적응형 빌드는 Navigation 3, WindowManager, 에이전트형 워크플로를 결합하여 최소한의 수동 오버헤드로 모바일 레이아웃을 반응형 멀티창 환경으로 리팩터링할 수 있도록 지원합니다. 기존 레이아웃을 더 발전시키려는 개발자를 위해 Compose를 사용하여 모든 화면에 맞게 앱 확장에서는 이러한 멀티창 아키텍처 패턴을 살펴보고 창 크기가 변경될 때 탐색 흐름을 최적화하는 방법을 보여줍니다.

모바일 폼 팩터를 넘어 확장하면 Googlebook과 같은 새로운 기회도 열립니다. 데스크톱급 환경을 빌드하려면 물리적 주변기기 지원, 창 환경 등이 필요합니다. Notability 및 Logitech과 함께하는 Googlebook의 첫 번째 물결, 초기 파트너가 포인터 상호작용, 외부 하드웨어, 데스크톱 수준 워크플로에 최적화하는 실용적인 엔지니어링 전략을 공유합니다.

Android 기술 시작하기 

이러한 패턴을 더 빠르게 구현하려면 Android 기술을 활용하여 코딩 에이전트를 지원하면 됩니다. Android 스튜디오에서 Gemini를 사용하든 다른 에이전트와 함께 Android CLI를 실행하든, 이러한 기술은 개발자를 대신해 복잡한 작업을 처리하고 적응형 품질 가이드라인을 준수합니다.Compose의 경우 현재 다음과 같은 기능이 있습니다.

  • 업데이트된 적응형 기술은 상담사가 작은 화면을 반응형 멀티 창 레이아웃으로 변환하고 상태 및 구성 변경을 처리하는 데 도움이 됩니다. 이제 폴더블 및 데스크톱 지원이 추가되어 창 관리, 키보드 단축키, 도움말, 트랙패드 마우스 오버 상태를 자동으로 처리합니다.
  • 코드베이스를 최적화하는 데 도움이 되는 새로운 Compose 성능 기술
  • XML에서 Compose로 이전 기술
  • 새로운 잉크 기술 

핵심 아키텍처와 적응형 레이아웃 외에도 Media3 재생, CameraX 파이프라인, 차량 내 환경, 풍부한 그래픽, Google Play를 Compose로 대규모 이전하는 과정에서 얻은 교훈을 다루는 기술 심층 분석을 살펴볼 수 있습니다.  Android Developer Summit 앱 기초 세션 재생목록에서 기술 둘러보기 전체 모음을 확인하여 아키텍처, 코드 둘러보기, 실용적인 가이드를 살펴보세요. 

작성자:
계속 읽기