이번 GDG 플러터 프로젝트에서
우리팀은 상태관리를 GetX로 진행하기로 했다.
그동안 거의 GetX만 사용하던 나에겐 그나마 위로가 되었다.
GetX를 초심부터 배우자는 마음으로 이번시간에는
플러터 프로젝트를 만드면 나오는 기본 카운터를 GetX으로 바꾸어 보도록하겠다.
https://pub.dev/packages/get/install
우선 해당 패키지를 설치해주자
처음엔 pubspec.yaml에 직접 작성하여 설치했는데 이제는 터미널에 치고 끝낸다.
먼저 count에 필요한 controller를 만들어주겠다.
Rx는 UI에 그려지며 실시간으로 데이터가 변화되오니 지속적으로 관찰이 필요하다는 말이다.
따라서 num이란 Int형을 0으로 초기화 해두며 동시에 .obs(상태변화를 감지하라)를 해주면 된다.
이 밖에도 모든 자료형이 사용될수 있다.
이제 메인페이지에서 increaseNum 함수를 통해 num을 1씩 더해줄 것이다.
추가로 Rx로 지정된 변수들은
num = 3;
이 아닌
num(3); 과 같이 대입시켜줘야한다.
메인페이지를 수정해보자
기본적으로 GetX는 StatefulWidget을 지양하고 있기에 최대한 사용을 자제해야한다.
|
해당 파일을 지워 Stateless로 만들어주자 |
다음으로 빨간줄이 뜨는 텍스트 부분과 onPressed 부분을 일단 지워주자
이제 메인페이지에 아까 만든 컨트롤러를 등록시켜줘야한다.
맨 아래와 같이 컨트롤러를 등록시켜주면 된다.
다음은 숫자를 그려보자
등록한 controller의 num의 값을 문자열로 변환하는 코드이다.
버튼을 눌렀을때 실행되는 함수는 아래와 같다.
마지막으로 제일중요한 상태관찰이다.
위와 같이 하고 버튼을 눌러도 변화가 없을것이다.
변화가 필요한 위젯을 ObX(()=> )로 감싸주면 끝이다.
이 안에 데이터가 변경되면 UI를 다시그려주게된다.
https://github.com/tngudzzz/flutter_demo_counter_getx