-
카테고리
-
세부 분야
모바일 앱 개발
-
해결 여부
미해결
DI 설정
22.12.18 20:59 작성 조회수 200
0
provider_setup 파일과 MultiProvider사용으로 앱 전역적으로 프로바이더를 사용할 수 있게하셨는데
이렇게 되면 MyApp아래 모든 파일에서 같은 provider를 공유하고 있는데 이런 방식보단 해당 provider를 사용하게 될 위젯들의 상위 context에서만 선언을 해주는 것이 좋지 않나요? 메인 바로 아래 선언해주는 방식이 실제 앱실행시 계속해서 메모리를 잡아먹는 부담같은 건 없나요??
답변을 작성해보세요.
1
오준석
지식공유자2022.12.18
지금은 ViewModel 이 모두 싱글턴입니다.
말씀하신 대로 필요한 곳의 상위에 provider를 설정하면 해당 화면을 띄울 때 마다 새로 ViewModel이 생성되게 됩니다.
싱글턴이라 메모리를 항상 잡아먹고 있는데 이건 미미한 크기라 크게 문제가 되지 않습니다.
그런데 현재는 메모 작성 화면에 들어갈 때 마다 새로 ViewModel이 생성되는 것이 맞지만 한번 생성된 ViewModel이 공유되기 때문에 마지막에 선택한 색상이 유지되는 이슈가 있습니다.
말씀하신 방법대로 수정하시면 이 이슈도 수정됩니다.
필요한 부분에 provider를 설정하여 문제를 해결할 수 있지만, 더 나은 방법이 있기 때문에 이러한 문제를 효율적으로 해결하는 DI 심화 강의를 기획중입니다.
답변 1