Flutter

Builder (StreamBuilder, FutureBuilder)

Dean83 2023. 3. 14. 15:43

플러터는 위젯으로 구성되어 있다. 

앱 구동시 비동기 작업, 혹은 observe 후 이벤트 변화에 따른 작업시 UI를 갱신하거나 새로 그려야 할 경우가

상당히 많을것이다. 

 

기존대로라면, 각 비동기, observe 상황시 수동으로 UI를 갱신하거나 그려주는 형태로 개발을 할것이다. 

 

builder는 말 그대로 위젯을 빌드해 준다. 즉 그려야 할 UI를 빌드 하는것이라고 보면 된다. 

 

StreamBuilder 는, observe 한 대상이 변경 이벤트가 발생했을때 마다 builder에 정의한 위젯들을 화면에 그릴수 있게 한다.

마찬가지로, FutureBuilder는 비동기 작업 후 결과물을 화면에 그릴때 위젯들을 빌드하여 그릴 수 있도록 해준다.

 

어찌보면 UI 갱신, 생성의 자동화를 플러터가 자동으로 처리해준다고 생각하면 된다. 

 

1. StreamBuilder 예제

.....
StreamBuilder(
stream : 스트림변수명,
builder : (BuildContext context, snapshot)
{
	return new 위젯명( snapshot.data 활용 ......
}

......

- 앞쪽에서 미리 구현한 stream을 인자값으로 넣어줘야, 해당 스트림의 변화를 자동으로 감지하여 동작한다.

- 빌더에 위젯을 구현해 두면, stream 변화에 맞춰 해당 위젯을 그린다. 

 

2, FutureBuilder 예제

.......
FutureBuilder(
future : future 변수,
builder : (BuildContext : context, AsyncSnapshot<변수타입> snapshot)
{
	children : <Widjet> [
    
    snapshot.hasdata와 snapshot.hasError, shapshot.data 를 활용하여 위젯 구성
    ....
    
    ]
    
}

'Flutter' 카테고리의 다른 글

REST API 통신  (0) 2023.03.20
Slivers, CustomScrollView  (0) 2023.03.14
Stream (Kotlin 라이브데이터)  (0) 2023.03.14
비동기, Future , Then  (0) 2023.03.07
Stateful, Stateless 위젯  (0) 2023.02.17