[flutter] 플러터 get과 코드 구조화

플러터(Flutter)는 모바일 앱을 만들기 위한 효과적인 프레임워크로, get 패키지를 사용하여 프로젝트를 보다 효율적으로 구조화할 수 있습니다. 이번 글에서는 플러터에서 get 패키지를 사용하여 코드를 어떻게 구조화하는지에 대해 알아보겠습니다.

1. get 패키지란?

get 패키지는 플러터 프로젝트에서 라우팅 및 상태 관리를 위한 패키지로, 단순하고 직관적인 사용법을 제공합니다. 이를 통해 앱의 코드를 간결하게 작성할 수 있으며, 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.

2. get 패키지를 이용한 코드 구조화

get 패키지를 이용하여 플러터 코드를 구조화하는 방법은 다음과 같습니다.

2.1. 페이지 라우팅

get 패키지를 사용하여 페이지를 라우팅하기 위해서는 다음과 같은 코드를 작성합니다.

import 'package:get/get.dart';

class Routes {
  static const home = '/';
  static const detail = '/detail';
}

void main() {
  runApp(GetMaterialApp(
    initialRoute: Routes.home,
    getPages: [
      GetPage(name: Routes.home, page: () => HomeView()),
      GetPage(name: Routes.detail, page: () => DetailView()),
    ],
  ));
}

위의 예제에서는 routes 클래스를 만들고, 각 라우트에 대한 상수를 정의합니다. 그 후 GetMaterialApp 위젯을 사용하여 초기 라우트와 페이지 설정을 하여, GetPage 리스트에 페이지를 추가합니다.

2.2. 상태 관리

get 패키지를 사용하여 상태를 관리하기 위해서는 다음과 같은 코드를 작성할 수 있습니다.

import 'package:get/get.dart';

class CountController extends GetxController {
  var count = 0.obs;

  void increase() {
    count++;
  }
}

void main() {
  runApp(
    GetMaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Count Example')),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              GetBuilder<CountController>(
                init: CountController(),
                builder: (controller) {
                  return Text(
                    'Count: ${controller.count}',
                  );
                },
              ),
              ElevatedButton(
                onPressed: () {
                  Get.find<CountController>().increase();
                },
                child: Text('Increase'),
              ),
            ],
          ),
        ),
      ),
    ),
  );
}

위의 예제에서는 GetxController를 상속받은 CountController 클래스를 만들어 상태를 관리합니다. increase 메서드를 통해 count의 값을 증가시킬 수 있으며, GetBuilder 위젯을 통해 상태의 변화를 감지하고 화면을 업데이트할 수 있습니다.

결론

get 패키지를 사용하여 플러터 앱을 개발할 때, 페이지 라우팅 및 상태 관리를 효율적으로 구현할 수 있습니다. 코드를 간결하게 작성할 수 있으며, 앱의 유지보수성을 향상시킬 수 있습니다. 이를 통해 빠르고 안정적인 앱을 제작할 수 있게 됩니다.

참조: