inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Flutter 중급 1편 - 클린 아키텍처

stream 데이터

265

모형근

작성한 질문수 1

0

안녕하세요.

현재 앱을 만들고 있는데, 고민하고 있는게 해결이 안되어 질문드립니다.

 

viewModel에 Stream 데이터를 넣고싶은데 어떻게 해야될까요?

해당 데이터를 구독하여, view의 consumer 위젯에서 재빌드 되고싶습니다.

 

그래서, streamprovider를 MultiProvider에 선언하여 사용하면, viewmodel 밖으로 빠져나가는데, mvvm 패턴이 아닌거같고요...

 

Streamprovider를 MultiProvider에서 생성하여, ProxyProvider로 viewmodel을 만들어야할까요??

android Flutter ios

답변 1

1

오준석

기본 기능으로 구현한다면

강의 후반에 노트 저장과 에러 메시지를 스트림으로 내보내서 UI에서 처리합니다.

그렇게 스트림을 만드시면 되고

단발성 이벤트는 listen() 으로 관찰하여 처리하고,

UI 를 구성해야 한다면 StreamBuilder 로 처리하시면 됩니다.

 

StreamProvider는 Stream 값만 독자적으로 제공할 때 쓰기 때문에 ViewModel 에 Stream을 넣어야 하는 상황에는 어울리지 않아 보입니다.

그리고 Consumer 는 ChangeNotifier 의 값을 노출해 주지만 Stream 값을 처리해 주지는 않습니다.

Consumer로 처리한다면 Stream은 ViewModel 내부적으로만 사용하고 UI에 노출은 최종 값만 노출하는게 맞습니다.

Stream에 새로운 값이 갱신될 때 마다 노출시킬 변수 값을 바꾸고 notifyChange() 를 호출하는 식으로요.

MVVM, 클린 아키텍처 관련 질문 있습니다.

0

87

2

가끔씩 ui가 깨지는? 현상이 있어서 질문드립니다.

0

95

1

freezed 3.0 대응된 코드 깃헙에도 업데이트 해주실 수 있으신가요?

0

183

3

sealed class 사용시 기능은 동작하지만 Radio위젯에 선택 표시가 안되는 부분 질문

0

124

2

sealed class 사용시 The getter 'orderType' isn't defined for the type 'NoteOrder<dynamic>' 오류

0

96

2

유즈케이스 관련하여 질문 드립니다.

0

93

1

mockito사용시 오류 해결법

1

123

2

sealed class 사용 문의2

0

78

2

sealed class 사용 문의

0

120

2

freezed3.0에서 build시 when생성되지 않습니다.

0

265

2

Try implementing the missing methods, or make the class abstract. 문제해결 공유

0

238

2

This is likely caused by a misconfigured builder definition. 오류 해결 방법

1

319

3

강의 화면이 안보여요

0

138

3

Flutter에서 추천하는 Navigator, Router

0

325

2

The following ProgressEvent object was thrown resolving an image codec: [object ProgressEvent]

0

325

3

event와 ui_event

0

212

1

코드 색깔 관련 질문

0

208

1

Photo.fleezed.dart,photo.g.dart삭제시 에러

0

206

2

sealed class 적용 시...

0

327

1

클린 아키텍처 질문

0

309

1

sealed class 데이터 접근

0

328

1

서버에서 데이터를 가져와서 사용하는 경우...

0

235

1

뷰/뷰모델 작성 질문

0

273

1

freezed JsonKey 사용 예시 공유

1

792

1