Android Jetpack Compose

LaunchedEffect 살펴보기 LaunchedEffect는 Composable에서 컴포지션이 일어날 때 suspend fun을 실행해주는 Composable이다. @Composable fun LaunchedEffect( key1: Any?, block: suspend CoroutineScope.() -> Unit ) { .. } 리컴포지션은 Composable의 State가 바뀔 때마다 일어나므로, 만약 매번 리컴포지션이 일어날 때마다 이전 LaunchedEffect가 취소되고 다시 수행된다면 매우 비효율적일 것이다. 이를 해결하기 위해 LaunchedEffect는 key라 불리는 기준값을 두어 key가 바뀔 때만 LaunchedEffect의 suspend fun을 취소하고 재실행한다. 예를 들어 ..
Compose의 State 선언형 UI 프레임워크인 Compose는 Stateless함이 가장 큰 장점이다. UI에 대한 UI상태의 상호 의존성을 끊을 수 있다면 UI의 재사용성이 생기고, UI에 대한 테스트 또한 가능해지기 때문이다. Compose Stateless의 장점 1. UI 재사용성 2. UI 테스트 가능성 하지만 가끔 상태가 UI에 저장되어야만 하는 경우가 있다. 대표적으로 TextField가 있다. TextField는 어떤 텍스트가 입력되었는지를 저장해야 하기 때문에 상태를 가져야 한다. 아래에서 제목을 가지도록 Custom한 TextField인 TextFieldWithTitle을 보자. @Composable fun TextFieldWithTitle(title: String) { var t..
Side Effect란 무엇인가? Side Effect(부수 효과)란 Composable 범위 밖에서 발생하는 앱 상태에 대한 변경이다. Side Effect를 이해하기 위해서는 아래 두가지를 이해해야 한다. Composable은 각각의 Lifecycle을 가지고 있다. Composable은 단방향으로만 State를 전달한다. 우리는 Composable을 사용할 때 여러 Composable들을 겹쳐서 사용한다. 그러면 시스템은 각 Composable에 대한 Lifecycle을 만들고, Composable 별로 재구성이 필요할 때만 재구성시킨다. 또한 Composable은 기본적으로 바깥쪽 Composable이 안쪽 Composable로 State를 내려준다. 이로 인해 단방향으로만 의존성이 생긴다. 하지..
color.xml과 Color객체 color.xml은 Jetpack Compose가 출시되기 이전 color을 정의하는 방법이었다. 하지만, Compose에서 Color객체와 Color객체를 이용한 Theming을 지원하게 되면서 코드 상에 Color 객체를 정의하는 방식이 표준이 되어, 기존 color.xml을 이용한 색상 리소스 로딩 방법을 더이상 사용하지 않게 되었다. 하지만 기존의 프로젝트들에서 모든 리소스를 한 번에 이동하기는 번거롭다. 따라서 Compose에서는 colorResource메서드와 color.xml을 이용한 Color객체 로딩 방법 또한 제공한다. 새로운 앱에서는 color.xml을 사용하지 말고 Color 객체를 사용하도록 하자. 기존 color.xml의 color를 로딩하기 위..
strings.xml이란? strings.xml은 문자열 key값에 대한 value값을 매핑해놓은 XML파일이다. XML파일이란 eXtensible Markup Language 의 약자로 다목적 마크업 언어이다. 안드로이드에서는 이 xml파일을 블록 내에 리소스 태그을 만드는 식으로 사용한다. 예를 들어 문자열의 경우 태그를 이용해 정의한다. 예를 들어 아래와 같은 strings.xml 파일이 있다고 해보자. 위 string.xml 파일은 아래 두가지 Key-Value 쌍을 가지고 있다. 하나는 "app_name" - "Compose" 쌍이고, 다른 하나는 "kotlin_world_blog"와 "Kotlin World Blog" 쌍이다. Key Value app_name Compose kotlin_wor..
Dev.Cho
'Android Jetpack Compose' 카테고리의 글 목록 (3 Page)