• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    해결됨

StreamBuilder와 Bloc과 Provier

20.04.11 17:20 작성 조회수 451

0

보통 Block 패턴에 StreamBuilder를 많이 쓰는데

Provider에서는 StreamBuilder를 안 써도 되는건가요?

Provider를 쓰다보니까 StreamBuilder의 필요성을 잘 못 느끼겠는데 제가 Provider나 StreamBuilder에 관한 이해가 아직 부조한 것인가요?

또한, Bloc과 Provider의 역할을 비슷하게 봐도 무방한 것인가요?

그리고, 요즘에는 Provider를 쓰는 것이 간편하고 좋다고 해서 Provider를 주로 쓰고 있는데 실제로 써보니까 Bloc보다 훨씬 편한 것 같습니다.

Provider를 쓰면 StreamBuilder를 쓰지 않아도 문제가 되는 것이 없는지 궁금합니다.

답변 4

·

답변을 작성해보세요.

1

네. AudioPlayerModel 정도의 이름으로 NotifierProvider 객체를 만든고 안에 AudioPlayer 담고 volume과 speed 변수 두고 사용하고자 하는 곳에 주입한 후에 사용할 부분에서 Provider.of<T>(context) 로 가져가 쓰면 됩니다.

0

guide94님의 프로필

guide94

질문자

2020.04.12

오 감사합니다!

0

guide94님의 프로필

guide94

질문자

2020.04.11

아 그럼 외부 라이브러리를 예로 들어 다시 한 번 질문을 드리겠습니다.

https://pub.dev/packages/just_audio#-example-tab-

이 라이브러리 보시면 RxDart와 StreamBuilder를 쓰는 것을 예제로 보여주고 있는 것 같은데

Provider로 바꾸자면 StreamBuilder를 사용한 부분을 간단하게

Provider.of<T>(context).~~~ 하듯이 사용할 수 도 있겠군요?

0

네 Provider가 기존에 복잡한 Bloc패턴을 더 쉽게 쓰게 해 줍니다.

구글 추천 Provider 쓰시면 됩니다. StreamBuilder 안 써도 되고 동일 효과를 냅니다.

다만 왜 그렇게 동작하는지 깊게 공부할 필요는 있기에 중급 강좌에서 다루고 있습니다.

Provider 안 쓰면 InheritedWidget과 RxDart, StreamBuilder 써야 해서 복잡합니다.

지금 Bloc 라이브러리는 Provider와 비슷해 졌더라고요.