![Compose의 SideEffects (2)](http://i1.daumcdn.net/thumb/C120x120/?fname=https://blog.kakaocdn.net/dn/19ZjC/btsAuQP9nre/eqX427qMnvfSV86SIH6c2k/img.png)
Compose의 SideEffects (2)
지난 포스팅 https://jinudmjournal.tistory.com/148 Compose의 SideEffects (1) Composable에서의 non-composable SideEffects란 Composable 함수의 범위 밖에서 발생하는 앱 상태에 관한 변경사항입니다. Composable의 수명 주기 및 속성으로 인해 SideEffects를 최소화하는 것이 좋습니다. 하지 jinudmjournal.tistory.com 지난포스팅에 이어서 Compose의 SideEffects에 대하여 학습하는 시간을 가지게 되었습니다. 이번 시간에는 Compose 상태를 Non - Compose 상태로 변환하는 방법과 반대의 경우를 살펴보겠습니다. Non - Compose -> Conpose Compose에서는..
- [Android] Tech,Study/[Android] Compose
- · 2023. 11. 18.
![Compose의 SideEffects (1)](http://i1.daumcdn.net/thumb/C120x120/?fname=https://blog.kakaocdn.net/dn/OUYkk/btsAut1z7OE/b0RNzUZkJkJgZRtd2Si59K/img.png)
Compose의 SideEffects (1)
Composable에서의 non-composable SideEffects란 Composable 함수의 범위 밖에서 발생하는 앱 상태에 관한 변경사항입니다. Composable의 수명 주기 및 속성으로 인해 SideEffects를 최소화하는 것이 좋습니다. 하지만 스백바를 표시하거나 특정 상태 조건에 따라 다른 화면으로 이동하는 등의 일회성 이벤트를 처리할 때 SideEffects가 필요하게 됩니다. LaunchedEffect LaunchedEffect는 컴포저블 범위에서 정지 함수를 실행할 때 사용합니다. 매개변수로 전달 된 코드 블록으로 코루틴이 실행되는데요. LaunchedEffect가 컴포지션을 종료하면 코루틴이 취소됩니다. LaunchedEffect(Unit) { detailViewModel.in..
- [Android] Tech,Study/[Android] Compose
- · 2023. 11. 18.
[Room] error: Cannot figure out how to save this field into database 문제 해결
에러 내용 error: Cannot figure out how to save this field into database. You can consider adding a type converter for it. error: Cannot figure out how to read this field from a cursor. Room Database를 사용하던 중에 위와 같은 에러가 발생했습니다. Room에 데이터를 저장할 때는 primitive type과 wrapping type만 지원합니다. 따라서 그 외의 LIst나 커스텀 클래스를 저장할 경우에는 converter를 지정해주여야 한다고 합니다. Converter의 사용법을 익혀서 문제를 해결해는 방식을 학습했습니다. Entity @Entity(tabl..
- [Android] Tech,Study/[Android] Trouble Shoot
- · 2023. 10. 2.
![[Compose] 특정 텍스트 색상 변경에 대한 고민](http://i1.daumcdn.net/thumb/C120x120/?fname=https://blog.kakaocdn.net/dn/mt54j/btsu7WfJ592/Cx7rNOwUY2SuFeJgX0JJZK/img.jpg)
[Compose] 특정 텍스트 색상 변경에 대한 고민
문제 상황 Compose로 UI를 구성하던 중에 문제 상황이 발생하였습니다. 위의 이미지와 같이 검색 결과 중 검색어와 같은 글자의 텍스트 색상을 변경하는 디자인을 구성해야 했습니다. xml로 작업할 때는 RecyclerView의 adapter에서 함수를 사용해서 쉽게 변경할 수 있었지만, compose를 배우고 있는 터라 방법을 찾기 어려웠습니다. 구글링을 통해서 관련 라이브러리나 함수를 찾아보았지만 마땅한 방법이 없어서 직접 알고리즘을 구현하기로 결심하였습니다. 알고리즘 고민 단순히 검색 글자와 같은 부분을 찾아서 색상을 변경하기에는 아래와 같은 문제가 있었습니다. 1. 검색 내용을 여러개 포함하는 경우 - "바다" 단어로 검색을 하였을 때, "바다 앞 바다 카페" 의 검색 결과의 경우 2가지 검색 ..
- [Android] Tech,Study/[Android] Trouble Shoot
- · 2023. 9. 21.
BasicTextField를 활용한 Custom Compose TextField(EditText)
Compose의 EditText compose에서는 editText로 TextField를 사용합니다. 하지만 TextField는 내부 padding 값이 임의로 정해져 있으며, 커스텀하기 어렵다는 단점이 있습니다. 따라서 BasicTextField를 사용한 Custom Compose TextField를 제작했습니다. BasicTextField https://developer.android.com/reference/kotlin/androidx/compose/foundation/text/package-summary#BasicTextField(kotlin.String,kotlin.Function1,androidx.compose.ui.Modifier,kotlin.Boolean,kotlin.Boolean,andr..
- [Android] Tech,Study/[Android] Custom
- · 2023. 9. 21.
[Android,Paging] Compose에서 Paging Library 구현하기 (2)
Paging Library 구현 2번째 포스팅 입니다. https://jinudmjournal.tistory.com/131 [Android,Paging] Compose에서 Paging Library 구현하기 (1) Paging 라이브러리 Paging 라이브러리는 대규모 데이터 세트에서 페이징 된 데이터를 로드하여 표시하는 기능을 제공한다. Paging 라이브러리를 사용해서 네트워크 데이터 소스에서 페이징 된 데이 jinudmjournal.tistory.com Paging 구현 순서 이 포스팅에서 사용하는 Paging 구현 순서는 아래와 같다. 1. Data Model을 정의한다. - Entity, Dto, Domain Model, Mappers.. 2. RoomDB를 구현한다. 3. Retrofit 등 ..
- [Android] Tech,Study/[Android] Compose
- · 2023. 9. 16.