FuturBuilder의 builder는 BuildContext context랑 asyncsnapshot snapshot두개의 parameter를 받게된다.
connectionstate가 바뀔때마다(snapshot과 관련된 어떤 데이터가 바뀔때마다) builder함수가 새로 불린다.
아울러 builder 함수 내에서 setState를 실행할 경우 그 builder함수를 내포하고 있는 widget build가 다시 실행되면서 builder도 다시 실행된다.
future parameter에는 future를 리턴하는 어떤 함수도 넣을 수 있다. 이 함수의 상태가 변경될때마다 빌더를 다시 실행하여 화면을 다시 그려준다. 그리고 future안의 함수가 리턴해주는 값을 snapshot에서 받아볼수 있다.
위의 상황에서는 checkpermission함수가 리턴하는 값을 snapshot.data로 받아낸다.
위의 화면에서 snapshot.data의 data type이 string임을 암시하고 있다. 아울러 snapshot.connectionState에 따라
조회되는 화면이 달라진다.