플러터는 위젯으로 구성되어 있다.
앱 구동시 비동기 작업, 혹은 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 |