본문 바로가기

안드로이드 프로그래밍20

핵심만 골라 배우는 젯팩 컴포즈 (chapter 20 ~23) CompositionLocal- 컴포즈는 상태 주도적이며, 상태는 일반적으로 컴포저블 트리에서 가능한 한 가장 높은 노드에 선언되어야 하고(상태 호이스팅), 필요한 경우 계층의 하위 컴포저블에 전달해야 한다 -> 대부분의 상황에선 이는 잘 동작하지만, 계층의 여러 단계를 통해 상태를 전달해야 할 때는 다소 번거로울 수 있다. 이런 문제를 해결하기 위해 컴포즈에서는 CompositionLocal를 사용한다.CompositonLocal은 컴포저블 계층 트리 상위에서 선언된 상태를 계층 트리 하위의 함수에서 이용하는 방법 제공.해당 상태가 선언된 함수와 상태를 이용하는 함수 사이에 있는 모든 컴포저블에 상태를 전달하지는 않음.트리의 깊이가 깊을수록 여러 단계의 컴포저블에 상태를 전달해야 하는데, Composi.. 2025. 6. 21.
핵심만 골라 배우는 젯팩 컴포즈 (chapter 18 ~20) 컴포즈 개요컴포즈는 앱 개발에 관한 완전히 새로운 접근 방식.컴포즈는 선언적인 동시에 데이터 주도적.컴포즈의 선언적 구문프로그래머가 선언만 하면 레이아웃 배치, 제한, 렌더링 방법에 관한 모든 복잡한 세부 사항은 컴포즈가 자동으로 처리.컴포즈의 선언은 계층적으로 구조화되어 있기 때문에, 재사용 가능한 서브 뷰를 조합함으로써 복잡한 뷰를 쉽게 만들 수 있음.명령형 프로그래밍 패러다임 (기존 안드로이드 XML + Java/Kotlin)기존의 명령형 패러다임은 트리형태로 뷰를 구성. 레이아웃 위에 텍스트 뷰, 버튼 등을 쌓아 뷰를 그림.UI를 업데이트 하기 위해 일반적으로 findViewById() 같은 함수로 트리를 탐색해 내부 상태를 변경함.xml을 inflating 하여 객체를 만들어 사용, 위젯들은 내.. 2025. 5. 8.
[android] 구글 권장 앱 아키텍처 중 UI Layer 란 ? UI Layer 란 UI Layer의 역할은 화면에 앱 데이터를 표시하는 것따라서, 사용자 상호작용(ex. 버튼 누르기) 또는 외부 입력(ex. 네트워크 응답)으로 인해 데이터가 변할 때마다 변경사항을 반영하도록 UI가 업데이트 되어야 함사실상 UI Layer는 Data Layer에서 가져온 앱 데이터를 시각적으로 보여주는 것에 관심이 있다.즉 정리하자면, 데이터가 변경될 때마다 "어! 데이터 바뀌었다!"하고 해당 변경 사항을 업데이트하고 반영하는 것이 UI 레이어의 역할이다. UI 레이어는 버튼을 누른다거나, 네트워크로부터 응답이 도착했다거나 등 상태 변화에 따라 변경 사항을 업데이트한다.UI Layer 에는 구성 요소 두 가지로 나눠짐- UI elements : UI 요소가 갖는 본질적인 상태 즉,.. 2025. 5. 2.
[트러블 슈팅] Android 12 : 정확한 알람 권한 , 시스템에서 자동으로 권한을 부여하는 경우 2022년 11월 1일 이후, 구글은 Android 앱이 Target SDK 31 (Android 12) 이상을 지원해야 Google Play에 업데이트가 가능하도록 정책을 변경했다. 이 정책은 앱 개발자에게 다양한 기술적 요구 사항을 도입하게 만들었으며, 그 중 하나는 정확한 알람(Exact Alarm) 권한입니다. 이번 글에서는 정확한 알람 권한에 대해 알아보고, 이를 어떻게 처리해야 하는지 자세히 살펴보겠습니다. 1. 정확한 알람(Exact Alarm) 권한이란?Android 앱에서 정확한 알람은 특정 시간에 정확하게 트리거되는 알람을 의미합니다. 이러한 알람은 AlarmManager를 사용하여 다음 메서드를 통해 설정된다.setAlarmClock()setExact()setExactAndAllowW.. 2024. 9. 23.