[Android] 필요하다는 의존성 추가를 안해줬는데 왜 쓸 수 있었을까?

ddanglehee·2022년 9월 8일
0

TIL

목록 보기
3/9

🏞 배경

AAC ViewModel 인스턴스를 생성할 때 여러가지 방법이 있는데 그 중 delegate pattern을 적용한 방법인 by viewModelsby activityViewModels키워드로 생성하려고 했다.

⁉️ 궁금증 발생

이 키워드들을 사용하려면 build.gradle에 다음과 같은 의존성을 추가해야 한다고 알고 있다.

implementation 'androidx.activity:activity-ktx:1.5.1'
implementation 'androidx.fragment:fragment-ktx:1.5.2'

그런데 내 프로젝트의 build.gradle에는 눈을 씻고 찾아봐도 저 의존성은 없는데 나는 이미 내 프로젝트에서 by viewModelsby activityViewModels를 사용하고 있었다.

도대체 어떻게 된 일이지?!

💡 해결

열심히 구글링을 하다보니 나와 같은 궁금증이 있는 사람을 찾았다.
stackoverflow
답변에 따르면, dependency tree를 확인해보고 androidx.activity:activity-ktx이나 androidx.fragment:fragment-ktx를 암시적으로 내포하고 있는 패키지를 내 프로젝트에서 사용하고 있을 것이라고 한다.

그래서 확인해보았다!

그랬더니 androidx.navigation:navigation-fragment-ktx에서 내가 찾던 두가지 의존성을 모두 포함하고 있는 것을 확인할 수 있었다.

😺 결론

내가 이미 쓴 의존성 하위에 다른 의존성이 포함될 수 있다는 걸 알 수 있었다! (dependency tree라는 게 있는지도 몰랐다😅)
하지만 최신 버전과는 좀 차이가 있어서 필요한 게 생기면 그걸 직접 추가해서 쓰는 게 더 좋을 거 같다!

profile
잊고싶지 않은 것들을 기록해요✏️

0개의 댓글