inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

냉동코더의 알기 쉬운 Modern Android Development 입문

LiveData와 Observer Pattern 기초

Transformations import 안됨

573

성관

작성한 질문수 3

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

답변 1

0

냉동코더

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

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

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

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

     

0

성관

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

Coroutine, Flow 질문

0

382

1

moshi관련 질문입니다.

0

543

2

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

0

356

1

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

0

406

1

RecyclerView.Adapter vs ListAdpater

0

462

1

Flows 와 Coroutine

1

557

1

[BookSearchAdapter] onBindViewHolder의 currentList[position] 질문

0

359

1

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

0

443

1

Java Bill Pugh Solution 에서 INSTANCE

0

460

1

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

0

489

1

Fragment에서의 viewBinding

0

514

3

toolbar 질문드립니다.

0

405

2

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

2

563

1

코루틴 관련 질문

0

540

1

오류

1

490

2

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

1

741

1

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

1

344

1

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

1

521

1

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

1

1264

1

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

1

493

1

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

1

433

1

Room DB에 id 항목 추가

0

247

1

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

0

398

2

paging config pageSize 관련

0

423

1