Flutter :: 핵심개념
1. StatelessWidget(SLW)과 StatefulWidget(SFW)의 차이
=> 각 위젯의 상태변경이 반영되어야 할 필요가 없으면 SLW, 아니면 SFW
SLW
StatelessWidget은 이름 그대로 상태(State)를 가지지 않는 위젯 클래스다. 그래서 SLW 내부의 모든 UI 위젯들은 상태를 가질 수 없으며 상태가 없으니 상태의 변화를 인지할 필요도 없고 할 수도 없는 것이다. 그래서 화면이 생성될 때 한 번만 build 메서드를 호출해서 화면을 구성한 후에는 build 함수가 다시 호출되지 않는다. 버튼을 클릭하여 _count의 값을 변경시키더라도 build 메서드는 호출되지 않으므로 화면 내 Text 위젯의 값도 변경되지 않는 것이다. SLW은 변화가 필요없는 화면을 구성할 때 사용하는 위젯 클래스이며, 그렇기 때문에 build 메서드는 한 번만 호출된다.
SFW
화면의 구성이 상태 변화에 따라 재구성되어야 할 때 사용된다.
상태 변경은 setState 메서드를 이용해서 변경해야 한다.
setState 메서드가 호출될 때마다 build 메서드를 재호출하여 화면을 다시 그린다.
2. Scaffold
=> AppBar / Body / BottomNavigationBar / FloatingActionButton / FloatingActionButton / FloatingActionButtonLocation 지원
AppBar
주로 창 이름을 담당하고 있습니다. Android 에서 TitleBar, iOS에서는 NavigationBar로 불리던 영역 입니다.
Body
가운데 영역을 의미합니다.
BottomNavigationBar
다른 창 으로 이동할 수 있는 버튼들이 있는 하단 바 입니다. Android에선 Bottom Navigation Bar라는 명칭을 그대로 쓰고 있고 iOS에선 Tab Bar로 불리던 영역 입니다.
FloatingActionButton
창 위에 떠 있는 효과를 주는 버튼을 말합니다. Android에선 support library를 통해서 FloatingActionButton을 지원해주고 있습니다. iOS 에선 직접 버튼을 배치해서 사용했습니다.
FloatingActionButtonLocation
버튼의 위치를 설정합니다. 버튼을 하단 영역에 반쯤 걸치려면 보통 귀찮은게 아닌데, flutter에선 너무나도 가볍게 설정 되버립니다.
'개발 > Flutter' 카테고리의 다른 글
Flutter firebase 연동 (1) | 2021.12.21 |
---|---|
Flutter :: StreamBuilder vs FutureBuilder (1) | 2021.12.21 |
Flutter :: GetX 개념 이해 (0) | 2021.12.21 |
Flutter + Firebase 알람 공유 어플리케이션 개발 계획 (1) | 2021.12.19 |
Flutter :: 플러터/앱개발/스키아엔진/개요/성능/HotReload/인기/디자인예시/Dart문법 (0) | 2021.01.18 |