ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Get-X
    카테고리 없음 2023. 2. 14. 09:57
    반응형

    Bloc

    😶 Bloc 패턴은 UI와 비즈니스 로직의 분리를 해줌

    • 원래 Scaffold 위젯을 통해 많은 위젯이 제어되는데 제어되는 과정 속에서 모든 하위 위젯들의 불필요한 업데이트가 진행된다. 이게 단순한 앱일 경우에는 체감으로 느끼지 못할 수 있지만 무거운 앱일수록 사용자가 불편하게 느낄 정도로 앱이 느려지는 것을 확인할수 있음
    • Bloc 패턴을 사용하게 되면 UI와 비즈니스 로직을 분리하고 상태 관리를 하게 된다면 제어해주고 싶은 위젯만을 따로 제어해 효율적이고 깔끔한 코드를 설계할 수 있게 될 것이고 이로 인해 퍼포먼스 측면, 유지보수 측면에서도 큰 도움을줌
      하지만 Bloc 패턴의 경우 간단한 로직 하나 구현하는데도 최소 4개의 클래스를 작성해야 하는 불편함이 있다. 그래서 등장한 것이 Provider이다

    Provider

    😶 Provider 는 Bolc 패턴보다 쉽게 적용할 수 있어, 데이터 공유와 로직의 분리를 좀 더 간단하게 할 수 있다

    dependencies:
    provider: ^6.0.1
    

    Provider에서는 상태 관리를 직접 하지 않고 ChangeNotifier가 스스로 상태 관리를 한다.

    결국 두가지 개념은 상태 관리를 목적으로 하고 있으며, UI와 비즈니스 로직을 분리하는 목적에서 동일하다. 그러나 Provider 를 쓰면 더 간단하게 목적을 구현할 수 있다. 구글에서는 중규모 프로젝트는 Provier 를, 대규모 프로젝트는 Bloc 패턴을 추천하고 있다.

     

    Get X

    https://github.com/jonataslaw/getx/blob/master/README.ko-kr.md#Get%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC 

     

    GitHub - jonataslaw/getx: Open screens/snackbars/dialogs/bottomSheets without context, manage states and inject dependencies eas

    Open screens/snackbars/dialogs/bottomSheets without context, manage states and inject dependencies easily with Get. - GitHub - jonataslaw/getx: Open screens/snackbars/dialogs/bottomSheets without c...

    github.com

    Flutter를 위한 매우 가볍고 강력한 라이브러리이며 강력함을 뒷받침 하고 있는 3가지 기본 원칙이 있으며 다음과 같습니다.

     

    😶 첫째. 생산성

    • 같은 기능도 더욱더 편하고 간결하게 표현이 가능합니다.
    • 컨트롤러들을 사용하고 반환시켜주는 처리를 신경 쓰지 않아도 알아서 GetX에서 사용되지 않을 때 제거해주기 때문에 개발자분들은 더욱더 개발에만 신경 쓸 수 있습니다.

    😶 둘째. 성능

    - GetX는 성능과 최소한의 리소스 소비에 중점을 둡니다.

    • GetX는 Streams나 ChangeNotifier를 사용하지 않습니다.

    - 최소의 재 빌드를 위해 똑똑한 알고리즘을 적용하기 위해, GetX는 상태가 변했는지 확인하는 comparator를 사용합니다.

    😶 셋째. 조직화

    • GetX는 화면, 비즈니스 로직, 종속성 주입 및 내비게이션을 완전히 분리하여 관리할 수 있습니다.

    -  GetX는 자체 종속성 주입 기능을 사용하여 DI를 뷰에서 완전히 분리하기 때문에 다중 Provider를 통해 위젯 트리에서 컨트롤러/모델/블록으로 주입할 필요가 없습니다

    - GetX를 사용하면 기본적으로 클린 코드를 가지게 되어 애플리케이션의 각 기능을 쉽게 찾을 수 있습니다. 이것은 유지 보수를 용이하게 하며 모듈의 공유가 가능하고 Flutter에서는 생각할 수 없었던 것들도 전부 가능합니다.

     

    GetX를 사용하기 위한 사전 세팅

    dependencies:

    get: ^4.6.5

    이제 GetX에서 프로젝트의 모든 것을 관리할 수 있도록 설정하려면 MaterialApp을 사용하는 대신 앞에 Get만 추가해주면 된다.

     

    GetX가 말하는 세 가지 주요점

    첫째. 상태 관리

    GetX는 두 가지 상태 관리자가 있습니다: 단순 상태 관리자(GetBuilder라고 함)와 반응형 상태 관리자(GetX/Obx)

    둘째. 라우트 관리

    셋째. 종속성 관리

    종속성 인스턴스 선언 방법에는 총 4가지 방식이 있습니다.

    • Get.put()
    • Get.lazyPut()
    • Get.putAsync()
    • Get.create()
      • 페이지 이동 // 기본방식 Navigator.of(context).pushNamed("/first"); // Getx 방식 Get.toNamed("/first");
      • 현재/이전 페이지 삭제 후 이동 Get.offNamed("/second"); Get.offAllNamed("/");
    반응형

    댓글

Designed by Tistory.