| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- Android
- 동성로핫플
- 애드센스
- compose
- 수성구맛집
- 코딩공부
- 대구카페
- 대구맛집
- 선언형ui
- 코딩
- 앱개발
- 의무경찰
- 동성로카페
- 범물동카페
- 대구인스타핫플
- 감성카페
- 안드로이드앱개발
- 안드로이드개발
- 동성로맛집
- 대구핫플
- 안드로이드스튜디오
- 개발자
- 지산동카페
- 인스타핫플
- 안드로이드앱
- 안드로이드
- 파이썬
- androidstudio
- 수성구카페
- 어플개발
- Today
- Total
목록compose (6)
Glacier's Daily Log
SubcomposeLayout이란?SubcomposeLayout은 Jetpack Compose의 레이아웃 API.컴포저블을 순차적으로 측정하고, 측정 결과를 바탕으로 다른 컴포저블의 크기를 결정할 수 있다.일반적인 Compose의 문제점(?)일반적으로 Compose는 모든 컴포저블을 동시에 측정함. 예를 들어:배경 Box와 텍스트가 동시에 측정됨텍스트 높이를 모르는 상태에서 배경 높이를 결정해야 함onSizeChanged는 측정 후에 호출되어 리컴포지션이 필요함SubcomposeLayout을 통한 해결법SubcomposeLayout은 측정 순서를 제어할 수 있음:먼저 텍스트를 측정해 높이를 얻음그 높이로 배경 높이를 계산계산된 높이로 배경을 측정최종적으로 배치현업에서 SubcomposeLayout으로 문..
회사에서 Compose를 최초 도입하는 프로젝트를 리딩하고, 팀원들이 Compose를 도입하기 편하게 초기 작업들을 많이 진행하고 있다.Compose는 Recomposition과 상태관리 관점에서 많은 이점을 얻을 수 있는 MVI 아키텍처와 잘 어울리는데, 따라서 상용 운영중인 앱에 Compose를 도입할때는 MVI아키텍처로 리팩토링도 함께 진행하고 있다. Android Compose + MVI 아키텍처를 도입할 때 주의해야 할 점을 그라운드 룰로 정리해본다.Jetpack Compose에서 MVI(Model–View–Intent) 아키텍처를 준수하며 개발할 때, 구조적 일관성과 유지보수성을 높이기 위한 Ground Rule1. 단방향 데이터 흐름 (Unidirectional Data Flow)상태 직접 ..
Compose Preview에서 다양한 옵션 한번에 지원하기Jetpack Compose는 빌드 없이 @Preview 기능을 통해 UI를 빠르게 확인할 수 있는 장점이 있습니다.개발 중 컴포넌트의 다양한 옵션을 테스트하거나, 여러 화면 크기에서 어떻게 보이는지 확인하고 싶을 때가 있습니다.기존 방식 (비효율적인 코드)예를 들어, BannerView를 다양한 화면 크기에서 테스트하고 싶다면 다음과 같이 각각의 @Preview를 지정해야 했습니다.@Preview(widthDp = 180)@Composableprivate fun BannerPreview180() {BannerView(onClick = {})}@Preview(widthDp = 240)@Composableprivate fun BannerPrevie..
Strong Skipping Mode의 람다 메모라이제이션 기능Strong Skipping Mode는 Compose가 람다를 처리하는 방식을 개선해 리컴포지션 최적화를 자동으로 지원할 수 있음. 이 기능은 Compose 1.5.0 이상에서 활성화되며, 람다 사용 시 리컴포지션을 방지할 수 있도록 자동으로 최적화를 제공할 수 있음.람다 메모라이제이션의 기본 원리Compose는 람다가 이전과 동일한 객체인지 확인해 리컴포지션을 건너뛸 수 있을지 판단함. 이전 Compose에서는 람다가 새로운 객체로 간주되면 리컴포지션이 발생했지만, Strong Skipping Mode에서는 이를 자동으로 메모라이제이션하여 불필요한 리컴포지션을 줄일 수 있음.1. 람다의 안정성 판단Strong Skipping Mode는 람다..
Strong Skipping Mode는 Compose Compiler 1.5.4 version에 실험적으로 추가된 기능이다.(Note: Strong Skipping is enabled by default in Kotlin 2.0.20.)Strong Skipping Mode기본적으로 Compose 컴파일러는 Composable Function의 arguments들이 안정적이라면 skippable 하다고 간주.이와 관련하여 Strong Skipping Mode가 skippable 한 파라미터를 더 잘 찾을 수 있게 함.1. 기존 Skipping Mode기존에는 다음 조건을 만족해야 리컴포지션이 Skip됨.:데이터가 Stable이어야 함.데이터가 변경되지 않았음을 Compose가 알 수 있어야 함.따라서 St..
Jetpack Compose는 Recomposition 최적화에 관심을 가지고 개발해야 완성도가 높은 결과물을 기대할 수 있다.최적화 방안 중 하나인, Stability를 고려하는 방법에 대해 알아보자.Compose는 Stability(안정성)와 Recomposability(리컴포지션 가능성)를 기반으로 효율적으로 리컴포지션을 수행한다.1. Stability (안정성)Stability는 데이터가 불변(Immutable) 또는 변경이 없을 것으로 예측되는지를 나타냄.안정성은 @Stable 어노테이션 또는 컴파일러 분석에 의해 결정됨.Stable Class:객체의 상태가 변하지 않거나 변화를 잘 감지할 수 있는 클래스.Kotlin의 data class나 ImmutableList 같은 불변 객체가 이에 해당함..
