• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

DI 설정

22.12.18 20:59 작성 조회수 200

0

provider_setup 파일과 MultiProvider사용으로 앱 전역적으로 프로바이더를 사용할 수 있게하셨는데

이렇게 되면 MyApp아래 모든 파일에서 같은 provider를 공유하고 있는데 이런 방식보단 해당 provider를 사용하게 될 위젯들의 상위 context에서만 선언을 해주는 것이 좋지 않나요? 메인 바로 아래 선언해주는 방식이 실제 앱실행시 계속해서 메모리를 잡아먹는 부담같은 건 없나요??

답변 1

답변을 작성해보세요.

1

지금은 ViewModel 이 모두 싱글턴입니다.

말씀하신 대로 필요한 곳의 상위에 provider를 설정하면 해당 화면을 띄울 때 마다 새로 ViewModel이 생성되게 됩니다.

싱글턴이라 메모리를 항상 잡아먹고 있는데 이건 미미한 크기라 크게 문제가 되지 않습니다.

그런데 현재는 메모 작성 화면에 들어갈 때 마다 새로 ViewModel이 생성되는 것이 맞지만 한번 생성된 ViewModel이 공유되기 때문에 마지막에 선택한 색상이 유지되는 이슈가 있습니다.

말씀하신 방법대로 수정하시면 이 이슈도 수정됩니다.

필요한 부분에 provider를 설정하여 문제를 해결할 수 있지만, 더 나은 방법이 있기 때문에 이러한 문제를 효율적으로 해결하는 DI 심화 강의를 기획중입니다.