[Flutter] StreamBuilder

Bumhyeon Baek·2023년 7월 24일
0

Flutter

목록 보기
11/14

StreamBuilder

최신 앱들은 비동기적이고, 시간과 순서에 관계없이 어떤 이벤트든 발생 가능하다. 이러한 이벤트를 데이터 스트림으로 생각할 수 있다. Dart는 스트림을 사용하여 비동기식 데이터 스트림을 지원한다.

StreamBuilder는 비동기 데이터를 받아올 때 사용하고, 스트림과의 상호 작용에 대한 최신 스냅샷을 기반으로 자체적으로 build하는 위젯이다.
위젯 rebuilding은 State.setState를 사용하여 각 상호 작용에 의해 예약되지만 그렇지 않으면 스트림 타이밍에서 분리한다.
빌더는 Flutter 파이프라인의 재량에 따라 호출되므로 스트림과의 상호작용을 나타내는 스냅샷의 타이밍 종속 하위 시퀀스를 수신한다.

FutureBuilder는 HTTP를 사용하거나 하나의 response를 가져올 때 사용한다.

StreamBuilder는 수시로 바뀌는 값에 사용하게 된다. 즉, 새로운 이벤트가 발생할 때마다 스트림을 재생성한다. snapshot.hasData로 스냅샷에 데이터가 존재하는지 확인한다. initialData를 사용하여 초기 데이터를 사용 가능하다.
StreamBuilder는 FireBase, 센서 이벤트의 데이터와 사용 가능하고, 네트워크 연결 상태 체크에도 사용 가능하다.

StreamBuilder는 4가지의 ConnectionState가 존재한다.

  • ConnectionState.none: initialData가 사용된다.
  • ConnectionState.active: 데이터가 null은 아니지만 변경 가능할 때
  • ConnectionState.waiting:비동기 작업이 시작되었고 데이터는 null
  • ConnectionState.done: 데이터가 도착했을 때

Important Properties

  • stream
  • builder
  • initialData
profile
Cool Leader

0개의 댓글