프로그래밍 일반/Flutter 프로그래밍
[flutter] getx의 rx는?
지노윈
2024. 11. 10. 12:13
반응형
Rx는 "Reactive Extensions"의 약자입니다. 반응형 프로그래밍은 데이터 스트림과 변화의 전파에 중점을 둔 프로그래밍 패러다임입니다. Rx는 이러한 반응형 프로그래밍을 구현하기 위한 다양한 라이브러리 및 API를 의미하며, GetX에서는 Rx 객체를 통해 반응형 상태 관리를 쉽게 할 수 있도록 해줍니다.
GetX는 Flutter 애플리케이션 개발을 위한 강력한 상태 관리 및 라우팅 라이브러리입니다. GetX에서 Rx는 반응형(reactive) 프로그래밍을 위해 사용되는 클래스이며, 이는 상태 변화에 따라 자동으로 UI를 업데이트하는 것을 의미합니다.
Rx는 반응형 변수를 만들기 위해 사용되며, 다음과 같은 방법으로 사용할 수 있습니다.
import 'package:get/get.dart';
class CounterController extends GetxController {
// RxInt는 반응형 정수형 변수를 나타냅니다.
var count = 0.obs;
// 증가 메서드
void increment() {
count++;
}
}
위 예제에서 0.obs는 RxInt의 약어로, GetX가 제공하는 반응형 변수를 뜻합니다. obs는 immutable 타입을 반응형 타입으로 변환합니다.
이제 이 변수를 사용하는 UI 부분은 다음과 같습니다.
import 'package:flutter/material.dart';
import 'package:get/get.dart';
class Home extends StatelessWidget {
// Controller 인스턴스를 사용하여 변수를 접근해야 합니다.
final CounterController c = Get.put(CounterController());
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("GetX Example")),
body: Center(
// Obx 위젯은 반응형 상태를 감지하여 업데이트합니다.
child: Obx(
() => Text(
'Count: ${c.count}',
style: TextStyle(fontSize: 20),
),
),
),
floatingActionButton: FloatingActionButton(
child: Icon(Icons.add),
onPressed: c.increment,
),
);
}
}
Obx 위젯은 count 값이 변경될 때마다 UI를 자동으로 다시 빌드하게 합니다. 즉, 전체적인 GetX의 Rx 개념은 코드에서 상태 변화를 쉽게 관리하고 UI와 데이터 간의 단방향 데이터 흐름을 허용하여 더 깨끗하고 유지보수가 쉬운 코드를 작성하는 데 도움이 됩니다.