본문 바로가기
개발/Flutter

상태관리(State Management) 개념

by 파란검정 2023. 4. 4.
반응형

상태관리(State Management)는 애플리케이션의 상태를 관리하는 방법입니다.

애플리케이션의 상태란 사용자 입력, 네트워크 요청, 데이터 변경 등에 의해 변하는 값들을 말합니다. 이러한 상태를 관리하는 것은 애플리케이션의 성능과 사용자 경험을 개선하는 데 매우 중요합니다.

Flutter에서는 여러 가지 상태관리 방법을 제공합니다.

 


가장 기본적인 방법은 StatefulWidget을 이용하여 상태를 관리하는 것입니다.
StatefulWidget은 상태가 변경될 때마다 화면을 다시 그립니다.

 

 

또 다른 방법으로는 Provider 패키지를 이용하는 것이 있습니다. Provider는 InheritedWidget을 이용하여 상태를 관리하며, 상태가 변경될 때마다 화면을 다시 그리지 않아도 되기 때문에 성능이 우수합니다. 그 외에도 BLoC, Redux, MobX 등의 상태관리 패턴을 이용할 수 있습니다.

 

 

이러한 상태관리 방법을 적절히 선택하여 애플리케이션의 성능과 유지보수성을 높일 수 있습니다.

 

 

아래는 flutter 프로젝트를 작성하면 기본으로 작성되는 코드로 StatefulWidget을 이용한 간단한 카운터 애플리케이션입니다.
버튼을 누르면 카운트가 증가하며, 해당 카운트 값을 화면에 출력합니다.

import 'package:flutter/material.dart';

class CounterApp extends StatefulWidget {
  @override
  _CounterAppState createState() => _CounterAppState();
}

class _CounterAppState extends State<CounterApp> {
  int _count = 0;

  void _incrementCounter() {
    setState(() {
      _count++;
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Counter App'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text(
                'Count:',
              ),
              Text(
                '$_count',
                style: Theme.of(context).textTheme.headline4,
              ),
            ],
          ),
        ),
        floatingActionButton: FloatingActionButton(
          onPressed: _incrementCounter,
          tooltip: 'Increment',
          child: Icon(Icons.add),
        ),
      ),
    );
  }
}

 

 

이 코드에서 CounterApp 클래스는 StatefulWidget을 상속하고 있습니다.

상태는 _CounterAppState 클래스에서 관리하며, _count 변수에 현재 카운트 값을 저장합니다. _incrementCounter 메서드는 버튼을 누를 때마다 _count 값을 증가시키고, setState 메서드를 호출하여 화면을 다시 그리도록 합니다. 이렇게 함으로써 상태가 변경될 때마다 화면이 업데이트됩니다.

 

 

위 코드를 실행하면 버튼을 누를 때마다 카운트 값이 증가하는 것을 확인할 수 있습니다. 이와 같이 StatefulWidget을 이용하면 상태를 간단하게 관리할 수 있습니다.

반응형

'개발 > Flutter' 카테고리의 다른 글

커스텀 위젯(Custom Widget)  (0) 2023.04.06
머티리얼(material) 디자인 위젯  (0) 2023.04.06
애니메이션(Animation) 개념  (0) 2023.04.04
레이아웃(Layout) 개념  (0) 2023.04.04
머티리얼 디자인(Material Design) 개념  (0) 2023.04.03