[Compose] Preview에 Viewmodel 연결하기
Jetpack Compose로 개발 중에 Preview에 Viewmdodel을 적용하는 코드를 작성한다. @Preview(showBackground = true) @Composable fun DefaultPreview2() { MyFoodDiaryBookAOSTheme { MainUi(todayViewModel = TodayViewModel()) } } Main화면을 담당하는 MainUi 적용 시, 위와 같이 뷰 모델을 적용해야 했다. 하지만 ComponentActivity 내부에서 viewmodel을 선언해서 사용해야하는데, MainUi 함수의 경우 따로 뷰 모델을 선언할 수 있는 코드를 작성할 수 없다. 따라서 적용하려 하는 뷰 모델의 껍데기 역할을 담당하는 FakeViewModel을 만들어서 Pre..
- Deep Dive/Android Jetpack Compose
- · 2023. 7. 26.
[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 생성 리스트 뷰의 각 아이템에 애니메이션을 적용하고, 아이..
- Deep Dive/Android Jetpack Compose
- · 2023. 7. 25.
[Android] Jetpack Compose (2)
UI 디자인하기 이전 포스팅에서 text뷰와 textField를 jetpack Compose 방식으로 적용하는 방법을 배웠다. 이제 화면을 담당하는 레이아웃과 그 내부의 코드를 작성하는 방법을 공부해야 한다. 이 방식을 익혀서 Activity에서 xml을 통해 작성한 레이아웃을 Jetpack Compose로 구현하는 연습을 한다. 연속 텍스트와 이미지 적용하기 구성 함수를 통해서 UI 계층 구조를 빌드하는 과정으로 연속 텍스트와 이미지를 적용한다. 간단한 메시지 함수를 빌드하고, 메시지를 표현하는 코드를 작성했다. 우선 메시지 데이터를 나타낼 data class를 선언했다. // 여러 텍스트 추가 data class Message( val author : String, val body : String, ..
- Deep Dive/Android Jetpack Compose
- · 2023. 6. 25.