본문으로 바로가기
  1. Home
  2. Flutter/Document
  3. Flutter 상태관리 (Ephemeral, App State)

Flutter 상태관리 (Ephemeral, App State)

· 댓글개 · Dev_Whale

Flutter 공식문서에서 기반하여 작성된 글이며 임시, 앱 상태에 관한 글입니다.


Ephemeral State (임시 상태)

임시 상태는 단일 위젯 안에 포함할 수 있는 상태입니다. 이를 UI state 또는 local state라고 부르기도 합니다.
임시 상태는 상태 관리 라이브러리를 사용할 필요가 없고 statefulWidget만 있으면 됩니다. 이는 앱 전체 상태에서 봤을 때 _index에 접근할 필요가 없습니다. 그리고 일반적으로 대부분의 앱들은 재시작하여도 페이지의 위치를 저장하진 않습니다.

이러한 비슷한 경우를 임시 상태라고 부릅니다.

class MyHomepage extends StatefulWidget {
  @override
  _MyHomepageState createState() => _MyHomepageState();
}

class _MyHomepageState extends State<MyHomepage> {
  int _index = 0;

  @override
  Widget build(BuildContext context) {
    return BottomNavigationBar(
      currentIndex: _index,
      onTap: (newIndex) {
        setState(() {
          _index = newIndex;
        });
      },
      // ... items ...
    );
  }
}

App State (앱 전체 상태)

앱에서 여러 데이터를 공유하고 유지하려는 상태를 application state라고 합니다.

 

예를 들어 앱으로 옷을 구매할 때 카테고리 별로 나눠져 있습니다. 모자, 상의, 하의, 신발, 등등으로 말입니다. 그리고 사용자들은 자신이 원하는 상품 카테고리에 들어가 상품을 장바구니에 넣습니다. 이 경우 상품들을 볼 수 있는 페이지는 따로 있을 것이고 장바구니 페이지도 따로 있을 것입니다. 만약에 임시 상태로 장바구니를 만들어 놓게 된다면 장바구니 페이지를 열 때마다 장바구니는 비어져 있을 것입니다. 그래서 사용자가 장바구니에 담은 데이터를 앱 전체에서 사용할 수 있는 상태가 필요합니다.

 

그래서 필요한 것이 상태 관리 라이브러리 입니다. Flutter홈페이지 에서는 Provider를 권장하며 이 밖에도 이 사이트에 들어가면 어떤 상태관리 라이브러리가 있는지 확인할 수 있습니다.

 

Provider 상태관리 라이브러리

22.10.15 기준 작성한 글의 내용이 오래되고 정보 전달의 역할을 제대로 하지 못한다고 판단하여 삭제하였습니다. 추후 다시 Provider에 대해 공부하고 정리하고 요약해서 올리겠습니다. Provider는 한국어 Readme를 제공하고 있습니다.

최근 글
Dev_Whale의 Flutter 블로그
추천하는 글
Dev_Whale의 Flutter 블로그
💬 댓글 개
이모티콘창 닫기
울음
안녕
감사해요
당황
피폐

이모티콘을 클릭하면 댓글창에 입력됩니다.