![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.
[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.
![[Android,Paging] Compose에서 Paging Library 구현하기 (1)](http://i1.daumcdn.net/thumb/C120x120/?fname=https://blog.kakaocdn.net/dn/bnIRqP/btst7xhLpJl/mtijujn5K2MlObtJAax160/img.jpg)
[Android,Paging] Compose에서 Paging Library 구현하기 (1)
Paging 라이브러리 Paging 라이브러리는 대규모 데이터 세트에서 페이징 된 데이터를 로드하여 표시하는 기능을 제공한다. Paging 라이브러리를 사용해서 네트워크 데이터 소스에서 페이징 된 데이터의 스트림을 설정하고, Compose View에 표시하는 방법을 학습했다. 우선 아래와 같이 Paging 관련 Library를 추가한다. // paging def paging_version = "3.1.1" implementation "androidx.paging:paging-runtime:$paging_version" implementation "androidx.paging:paging-compose:1.0.0-alpha18" 대부분의 페이징 라이브러리는 서버와 로컬 DB를 함께 사용하므로, Room과 ..
- [Android] Tech,Study/[Android] Compose
- · 2023. 9. 16.
![[Compose] Preview에 Viewmodel 연결하기](http://i1.daumcdn.net/thumb/C120x120/?fname=https://blog.kakaocdn.net/dn/tjJpt/btso9gKtNwd/vllqrETJLPyJ9r0817VH90/img.jpg)
[Compose] Preview에 Viewmodel 연결하기
Jetpack Compose로 개발 중에 Preview에 Viewmdodel을 적용하는 코드를 작성한다. @Preview(showBackground = true) @Composable fun DefaultPreview2() { MyFoodDiaryBookAOSTheme { MainUi(todayViewModel = TodayViewModel()) } } Main화면을 담당하는 MainUi 적용 시, 위와 같이 뷰 모델을 적용해야 했다. 하지만 ComponentActivity 내부에서 viewmodel을 선언해서 사용해야하는데, MainUi 함수의 경우 따로 뷰 모델을 선언할 수 있는 코드를 작성할 수 없다. 따라서 적용하려 하는 뷰 모델의 껍데기 역할을 담당하는 FakeViewModel을 만들어서 Pre..
- [Android] Tech,Study/[Android] Compose
- · 2023. 7. 26.
![[Android] Jetpack Compose (3)](http://i1.daumcdn.net/thumb/C120x120/?fname=https://blog.kakaocdn.net/dn/cgjYMZ/btsoTnwTEWx/zVW7k5ryRf1MNKPpDVa7s1/img.jpg)
[Android] Jetpack Compose (3)
https://developer.android.com/codelabs/jetpack-compose-migration?hl=ko#0 마지막으로 Compose를 활용해서 리스트 목록과 애니메이션을 추가하는 기능을 알아봤다. Jetpack Compose에서는 리싸이클러뷰처럼 어댑터와 레이아웃을 작성할 필요가 없다. LazyColumn, LazyRow, LazyVerticalGrid 처럼 Composable 함수를 사용해서 작성한다. Compose 함수로 UI를 구성할 때, Ui 상태를 저장하기 위해서 메시지 확장을 추적해야 한다. 이 추적 기능을 구현하기 위해서 remember와 mutableStateOf 함수를 사용해야 한다. Message Card 생성 리스트 뷰의 각 아이템에 애니메이션을 적용하고, 아이..
- [Android] Tech,Study/[Android] Compose
- · 2023. 7. 25.