StatefulWidget (상태 있는 위젯)버튼 클릭, 입력값 변화, API 데이터 반영, 애니메이션 등 값이 바뀌면 UI도 함께 바뀌어야 할 때 사용함.
내부에 State 객체가 존재하며, setState() 함수를 통해 화면을 갱신함.
setState(): 상태를 변경하고 화면을 다시 그리도록(rebuild) 요청함.동작 원리: [클린 상태] setState() 호출 [더티 상태] build() 재실행 다시 [클린 상태]가 되는 과정을 반복함.
dispose(): 화면이 사라질 때 딱 한 번 실행되며, 컨트롤러 해제 및 메모리 정리를 수행함.
ElevatedButton의 onPressed: () { ... }처럼 버튼을 눌렀을 때 실행되는 대표적인 콜백 함수 사용법을 배움.async 키워드와 await Future.delayed(Duration(seconds: 2))를 활용해 2초 대기 후 코드를 실행하는 비동기 처리 방식을 배움.
모든 showDialog 관련 함수는 화면의 위치 정보를 담고 있는 BuildContext를 반드시 사용해야 함.barrierDismissible: true 속성 등을 활용해 다이얼로그 바깥을 눌렀을 때 닫히게 할지 등을 설정함.
MediaQuery.of(context)화면의 크기 정보를 가져올 때 사용함.
MediaQuery.of(context).size.height / 2와 같이 작성하여 기기 화면 높이의 절반 크기로 UI를 동적 설정하는 방법을 배움.