프로그래밍/Android
Mastring Android ViewModels: 필요하다면, 생성자에 의존성을 Lazy하게 주입하라
Lou Park
2024. 6. 23. 11:27
ViewModel의 생성자에 있는 모든 의존성들을 Lazy Inject하라는 것은 아니지만, 드물게 사용하는 것들은 Lazy로 바꿈으로서 초기화 성능을 개선할 수 있다. 의존성이 실제로 필요할때만 주입되므로 이로인한 이점은 다음과 같다.
1. 빠른 시작
2. 더 낮은 메모리 점유율
3. CPU 부하 감소
Lazy Initialization을 사용해야하는 경우
- 규모가 큰 의존성
- 드물게 사용되는 의존성
- 조건부 의존성
케이스 스터디
@HiltViewModel
class BookViewModel @Inject constructor(
@IoDispatcher private val ioDispatcher: CoroutineDispatcher,
private val bookmarkUseCase: dagger.Lazy<BookmarkUsecase>,
북마크처럼 유저가 클릭할때만 사용되는 UseCase의 경우 생성을 미뤄둘 수 있다.
*이 글은 Mastering Android ViewModels에서 발췌해온 것입니다.