Android/Compose5 Android Compose에서 시스템 바와 화면 크기 측정 추가 + 아래꺼는 기본적으로 paddingValues에 TopAppBar , Status bar, Navigation bar 가 자동적으로 잡힌다 이 내용을 추가해야한다.Scaffold안드로이드 앱을 개발하다 보면 상태 바(Status Bar), 네비게이션 바(Navigation Bar), 그리고 키보드(IME) 같은 시스템 UI와의 공존이 꽤 까다롭다. XML에서는 잘 정리되었는데 이번 Compose 개발 중 또 까다롭다 느껴 Compose 관점에서 정리해보겠다. 이 글에서는 WindowCompat.setDecorFitsSystemWindows()와 Compose의 시스템 바/키보드 패딩 처리를 한 번에 정리해본다.1. 시스템 바란?안드로이드의 시스템 바(System Bars)는 운영체제가 직접 관리.. 2026. 1. 9. Compose에서 margin이 사라진 이유 123123 2026. 1. 2. Compose에서 ConstraintLayout이 사라진 이유 안드로이드 개발자라면 누구나 ConstraintLayout을 사용해봤을 거다. 그런데 Compose에서는 ConstraintLayout 을 지양한다.(사용은 가능함) 위의 사진은 Google이 ConstraintLayout을 공식적으로 지원하지 않거나, 새로운 안정화 계획이 없으면 라이브러리 자체를 deprecated 처리하겠다고 한다. 이렇게 ConstraintLayout이 사라지는 이유는 무엇일까? 또 그럼에도 ConstraintLayout 을 사용하고 싶은 순간이 있었을때 어떻게 변경했는가를 작성해보겠다.패러다임의 차이?내가 생각하는 근본적인 이유는 패러다임이라고 생각한다. ConstraintLayout은 XML 기반의 명령형(Imperative) 접근방식에서 탄생했다. "A 위젯이 B 위젯의 오른.. 2026. 1. 2. Compose UI 컴포넌트 설계 Compose UI 컴포넌트 설계의 중요성안드로이드 Compose UI 설계는 단순히 화면을 구성하는 것을 넘어 재사용성과 테스트 용이성을 높이고, 잦은 변경 사항에도 유연하게 대처할 수 있는 구조를 만드는 것이 핵심입니다. 컴포넌트를 화면 단위로 설계하는 것과 의미 있는 단위로 분리하는 것 사이에는 큰 차이가 있습니다. 후자의 방식은 유지보수성과 코드의 가독성을 크게 향상시킵니다.Google의 Compose API 가이드라인에 따르면, 하나의 컴포넌트는 단일 문제를 해결하는 데 초점을 맞춰야 하며, 이를 통해 간결하고 사용하기 쉬운 API 설계를 지원할 수 있습니다. 또한, 선언형 UI의 대표 주자인 React의 설계 원칙과 선언적 컴포넌트 구조에서 배울 점이 많습니다. Compose는 React에 비.. 2024. 12. 13. XML 에서 Copose로 전환하면 좋은 이유 1. UI와 로직의 통합기존의 XML 방식은 UI와 로직을 분리되었을때의 문제점은 다음과 같습니다.1-1. 데이터 바인딩의 실행 순서 문제XML에서 DataBinding을 활용하여 UI와 데이터를 연결하는 경우, XML이 먼저 실행되고 로직이 나중에 실행됩니다. 이로 인해 다음과 같은 문제가 발생합니다.초기 상태 비정상: UI 컴포넌트가 초기 상태를 올바르게 반영하지 못하거나, 데이터가 준비되기 전에 XML이 렌더링되어 잘못된 값을 표시할 수 있습니다.복잡한 상태 관리: XML의 뷰 상태와 로직의 데이터 상태를 일치시키기 위해 추가적인 코드가 필요합니다.1-2. 레이아웃 측정의 제약XML에서 커스텀 뷰를 만들거나 동적으로 뷰의 크기를 변경해야 하는 경우, onMeasure와 같은 메서드에서 크기를 측정하.. 2024. 12. 13. 이전 1 다음