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

ViewBinding cơ bản

Fragment에서의 viewBinding

513

tjrals6042673

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

0

[ViewBinding 기초] 부분을 듣고 있습니다.

Fragment()에서는 binding을 getter를 따로 만들고 사용하셨는데, 이렇게 사용하지 않고

그냥 private var binding : FragmentFirstBinding? = null

이라고 선언하고 onDestroyView에서

binding = null 이라고 선언해주는 것과 강의에서 보여주신 방법과 차이가 무엇인가용?

android kotlin 아키텍처 jetpack

Câu trả lời 3

1

tjrals6042673

감사합니다

1

frozencoder

변수 뒤에 get()을 붙이면 이 변수에 접근할 때마다 할당이 일어나고, get() 없는 단순 정의라면 클래스가 인스턴스화 될 때 한 번만 할당을 하게 됩니다. 프래그먼트가 라이프사이클에 따라 파괴되지 않는 경우에도 상황 변화에 따라 계속 값을 갱신해주기 위해서 get()을 쓰는 것입니다.

0

yeongjae oh

저도 석민님과 같은 생각을 하게되었는데 냉동코더님의 답변에 대해 제가 직접 확인해볼 방법이 있을까요? 어떤 의도인지는 알겠지만 직접 코드로 확인해보고싶습니다.

0

frozencoder

좀 설명이 부족했던 것 같습니다. 여기서 getter를 사용하는 가장 큰 이유중의 하나는 binding에 값이 정확히 세트되어 null이 아니라는 것을 보장받기 위한 것이고, 두 번째는 var 변수를 val로 변환함으로써 immutable로 만들어 외부에서 변형하지 못하게 하는 효과를 얻는 것입니다. getter를 생략하면 코드상에서 초기화를 잘못 수행했거나 혹은 앱 내의 알 수 없는 타이밍 이슈 등에 의해 null인 상태로 변수를 사용하여 문제가 발생할 수 있습니다.

fragment를 초기화하는 더 세련된 방법에는 여러가지 토론이 있긴 한데 개인적으로는 getter를 생략하는 것이 아닌 delegate를 사용하는 방법이 좋아보입니다. 저의 다음 블로그 글을 참고해 보세요.

https://cliearl.github.io/posts/android/prevent-fragment-memory-leak-during-viewbinding/

Coroutine, Flow 질문

0

380

1

Transformations import 안됨

0

572

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

488

1

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