inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Hướng dẫn nhập môn Modern Android Development dễ hiểu của Frozen Coder

LiveData và Observer Pattern Cơ bản

Transformations import 안됨

572

ksgking1124366

3 câu hỏi đã được viết

0

androidx.lifecycle 패키지에 Transformations 가 없어서 참조가 안됩니다! Unresolved reference라고 하네용..
Deprecated 된것 같진 않은데 사용방법이 달라진걸까요?

val userLD : LiveData<User> = ...;
val userFullNameLD: LiveData<String> = userLD.map { user -> user.firstName + user.lastName }


공식문서에 보니 이것처럼 먼저 생성한 LiveData나 MutableLiveData 를 참조해서 map 을 사용하는데 이런식으로 사용해야할까요?


+) 그리고 transformations 를 사용하는 이유나 언제 사용해야하는지? 이해가 잘 안되는데, 예시처럼 prefix나 suffix 가 필요할 때 사용하기 좋은가요?
MainActivity 에서 myViewModel.liveCounter.value = myViewModel.liveCounter.value?.plus(1) 이건 원본 데이터를 조작한게 아닌건가요?

android kotlin 아키텍처 jetpack

Câu trả lời 1

0

frozencoder

  • 디펜던시 버전이 올라가면서 사용법이 좀 더 직관적으로 바뀐게 맞는 것 같네요. 공식문서의 예제에 따라 사용하시면 됩니다.

  • Transformations을 사용하면 새로운 객체를 만들어서 사용하게 되는데, 이렇게 해야 ViewModel과 데이터 레이어의 결합관계가 약해져서 앱 구조가 견고해집니다.

  • 원본 데이터 값에 변형을 가해서 사용하고 싶은 경우에 Transformation을 사용하면 됩니다.

  • MainActivity 에서 myViewModel.liveCounter.value = myViewModel.liveCounter.value?.plus(1)로 값을 증가시킨 것은 원본 데이터를 수정한 것이 맞습니다. 실제 앱으로 생각하면 repository를 통해 데이터를 수정한 것인데, 이 영상의 시점에서는 아직 repository가 소개되지 않았기 때문에 설명의 간략화를 위해 viewmodel에서 데이터를 수정하는 기능을 구현했습니다.

     

0

ksgking1124366

아하 네 설명해주셔서 감사합니다 !! 😃

Coroutine, Flow 질문

0

380

1

moshi관련 질문입니다.

0

542

2

searchBooks() 에서 북 검색 입력을 너무 빨리 할 경우 마지막 글자로 검색이 안돼요.

0

355

1

안드로이드에서 아키텍처 패턴

0

404

1

RecyclerView.Adapter vs ListAdpater

0

460

1

Flows 와 Coroutine

1

556

1

[BookSearchAdapter] onBindViewHolder의 currentList[position] 질문

0

357

1

코루틴 메모리 관련해서 질문드립니다!

0

442

1

Java Bill Pugh Solution 에서 INSTANCE

0

458

1

nested json에서 특정 부분만 파싱하는법

0

487

1

Fragment에서의 viewBinding

0

513

3

toolbar 질문드립니다.

0

404

2

EditText 에서 delay 주셔서 처리하셨는데 flow 의 debounce() 하고 같은건가요?

2

561

1

코루틴 관련 질문

0

539

1

오류

1

489

2

강사님! 직렬화 라이브러리를 Moshi, kotlin serialization 두개를 사용하시던데 이유가 있으신가요?

1

740

1

EditText 는 kill 해도 값이 잘 저장되어있던데 혹시 제가 잘못테스트했을까요?

1

343

1

서버도 페이징 기능이 되는데 Paging 라이브러리가 필요할까요?

1

520

1

GSON 이 아닌 Moshi 를 사용하시는 이유가 있을까요?

1

1263

1

EditText 는 액티비티가 재생성되어도 값이 남아있던데 이유가 궁금해요

1

492

1

ViewModel 생성시 왜 초기값을 받지 않도록 했을까요?

1

432

1

Room DB에 id 항목 추가

0

246

1

안녕하세요. 용어에 대해 질문이 있어 글 남깁니다.

0

397

2

paging config pageSize 관련

0

422

1