ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Get-X
    flutter 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("/");
    반응형

    'flutter' 카테고리의 다른 글

    flutter Version 3.7대 오류  (0) 2023.03.14
    flutter 3.7 버전 오류  (0) 2023.03.06
    현지화(Localization)  (0) 2023.02.14
    flutter 스크린샷 방지 정리  (0) 2023.02.14
    오준석의 플러터 생존코딩 2.0 정리  (0) 2023.02.14

    댓글

Designed by Tistory.