[flutter] #3-2 Getx - 종속성 관리 : 바인딩

giyeon·2021년 5월 15일
3

flutter-getx

목록 보기
8/8
post-thumbnail

이 프로젝트는 Youtube '개발하는남자'의 '[ Flutter / 플러터 ] GetX 주요 기능 3가지 중 그 세번째 종속성관리 - 바인딩 #6' 강의를 참고했습니다.


binding

종속성관리는 다른 말로하자면 의존성관리라고 해도 무방해요.

효율적인 메모리 관리를 위해서는
인스턴스를 시킨것을 어떻게 활용하고, 필요하지 않을 때는 인스턴스를 없애주는 과정이 필요해요.

저번 포스팅에서
인스턴스를 넘겨줄 때 binding에 대해서 찍먹 해봤어요.
Get.to() 와 함께 써서 페이지 내에서 페이지 이동을 할 때 binding을 썼었어요.

                Get.to(
                  GetPutPage(),
                  binding: BindingsBuilder(() {
                    Get.put(DependencyController());
                  }),
                );

binding을 활용하는 방법은 또 있어요.
맨처음 페이지 리스트에서 binding을 미리 설정해 두는 거에요.

GetPage에서의 binding

다시말하면, binding은 라우트 세팅을 하는 곳인 GetPage 에서도 가능해요.
사용 방법은 이전과 동일해요.

main.dart

      getPages: [
        GetPage(name: '/', page: () => Home()),
        GetPage(
          name: '/binding',
          page: () => BindingPage(),
          binding: BindingsBuilder<CountControllerWithGetx>(() {
            Get.put(() {
              return CountControllerWithGetx();
            });
          }),
        ),
      ],

추가로 binding 부분을 따로 class로 만들어줘도 돼요.
Binding class를 만들어볼게요.
binding.dart

import 'package:flutter_getx_route_manage/CountControllerWithGetx.dart';
import 'package:get/instance_manager.dart';

class Binding implements Bindings {
  
  void dependencies() {
    Get.put(CountControllerWithGetx());
  }
}

class 는 Bindings를 상속시켜주고,
dependencies 내에서 BindingBuilder 필요없이 Get.put() 부분만 해주면 돼요.

class를 GetPage 내에서 binding으로 불러와주기만 하면 이전과 같이 동작해요.

        GetPage(
          name: '/binding',
          page: () => BindingPage(),
          binding: Binding(),
        ),

정리를 하자면 binding 시점을 두 가지로 나눌 수 있겠네요!

Get.to - page 이동시

GetPage - routes 설정시

여기까지 Binding에 대해서 알아봤어요. 👋

profile
Web , App developer wannabe 🧑🏻‍💻

0개의 댓글