Flutter 애플리케이션 개발에서 상태 관리는 UI와 애플리케이션 로직을 동기화하는 중요한 개념입니다. 올바른 상태 관리를 통해 데이터 일관성을 유지하고 사용자 경험을 향상시킬 수 있습니다.
StatelessWidget: 상태가 없는 위젯이 아니라 상태를 변경할 수 없는 위젯입니다.
class MyStatelessWidget extends StatelessWidget {
final Color color = Colors.red; // 상태 상수
Widget build(BuildContext context) {
return Container(color: color);
}
}
StatefulWidget: 상태를 변경할 수 있는 위젯입니다.
class MyStatefulWidget extends StatefulWidget {
_MyStatefulWidgetState createState() => _MyStatefulWidgetState();
}
class _MyStatefulWidgetState extends State<MyStatefulWidget> {
Color color = Colors.red; // 상태 변수
void _changeColor() {
setState(() {
color = Colors.blue;
});
}
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Stateful Widget Example')),
body: Center(
child: Container(color: color),
),
floatingActionButton: FloatingActionButton(
onPressed: _changeColor,
tooltip: 'Change Color',
child: Icon(Icons.color_lens),
),
);
}
}
BottomNavigationBar
의 현재 선택된 탭.상태 관리(State Management)는 공유 상태가 변경될 때 이를 동기화하는 과정을 의미합니다. 상태 관리가 없으면 데이터 일관성을 잃어 여러 문제를 초래할 수 있습니다.
Flutter에서는 다양한 상태 관리 도구와 패턴을 제공하여 상태를 효과적으로 관리할 수 있습니다.