Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

coding etude

[plugin] GetX (flutter 상태관리) 본문

Flutter(Dart)

[plugin] GetX (flutter 상태관리)

코코리니 2022. 9. 29. 18:36

https://pub.dev/documentation/get/latest/

 

get - Dart API docs

About Get GetX is an extra-light and powerful solution for Flutter. It combines high-performance state management, intelligent dependency injection, and route management quickly and practically. GetX has 3 basic principles. This means that these are the pr

pub.dev

flutter 를 Dart 로 개발을 할때 상태관리를 위한 여러가지 방법들이 있다(Rx, stream, provider.. 등등)

기존의 상태관리 plugin은 어느정도의 개념을 알고 사용해야 하거나, 데이터를 주고 받는 양쪽을 연결해주는 과정이 필요했다.

물론 몇번 사용해보면 금방 익숙해지긴하지만... 코드양이 쬐금 더 많아진다고 생각된다.

 

이번에 GetX를 사용해본 느낌은.. 이미 준비된 메소드만 사용하여 코딩 시간을 줄여주는 느낌을 받았다고나 할까..

 

GetX의 가장 핵심적인 부분은 GetView 와 GetxController 라고 생각이 된다.

지속적으로 체그해서 실시간으로 적용해야 하는데이터를 모두 GetxController 에 모아두고 GetView에서 컨트롤러를 불러와서 사용만 하면 되는 원리이다.

import 'package:get/get.dart';

class TestPage extends GetView<TestPageController>{
	TestPage({Key? key}): super(key: key);
    
    @override
    Widget build(BuildContext context){
    	return Obx(() => Scaffold( // obx 하위 위젯은 controller 의 상태 변경 시 reload 됨
         	child: controller.testValue ?  Padding()// 페이지 : Container()// 빈페이지
            // controller 는 클레스 생성 시 상속받은 TestPageController 이다.
            // GetView를 사용하면 controller를 어디서든 호출 할 수 있다.
        ));
    }
}

////////////////////////////////////////////
import 'package:get/get.dart';

class TestPageController extends GetxController {
	final _testValue = false.obs; // observation(?) 지속적으로 관찰
    
    get testValue => _testValue.value;
    set testValue(value) => _testValue.value = value;
}

위 공식 문서를 보면 사용 방법이 더 상세 하게 나와있는데 

가장 큰 장점은 주요 기능들을 모두 method 로 만들어 두어서 바로바로 사용이 가능하다는 점이다. 

Stateful 인지 Stateless 인지 이제는 신경쓸 필요가 없어진것??

Getx를 잘 사용하면 굉장히 많은 시간을 아낄 수 있을 것 같다.

'Flutter(Dart)' 카테고리의 다른 글

[Plugin] Carousel_Slider(화면 슬라이더)  (0) 2022.10.05
[plugin] DotsIndicator(슬라이더 표시)  (0) 2022.10.05
[Error] No TabController for TabBar  (0) 2022.09.29
[flutter] elevation  (0) 2022.09.29
[widget] IndexedStack  (0) 2022.09.29