BLoC vs GetX

enoch·2022년 3월 23일
1

플러터

목록 보기
15/17
post-thumbnail

BLoC vs GetX

상태관리를 하다보면 항상 여러가지 방법에서 고민을 하게된다. react를 배울때도 redux랑 react coil중에서 뭘할까 많이 생각을 하게됬는데 flutter에서도 똑같이 적용되는 부분이였다. 결론부터 말하자면 편한걸 쓰거나 같이프로젝트 진행하는 사람들에게 맞추어서 하면 되지만 그래도 여러가지 방면에서 비교해보면서 사용하는게 조금더 좋지 않을까해서 정리해본다.

  • 장점
  1. 쉬운 코딩 간단한 상태관리.
  2. 많은기능(여러가지 창,기본으로 제공되는 페이지 전환에니매이션,많은 util제공)
  3. 귀찮은 context가 필요없음
  4. 짧아지는 코드=> Mediaquery.of(context)어쩌구저쩌구를 매우 짧은 코드로 퉁치기 가능
  • 단점
  1. 많은 기능은 장점이나. 많이쓰면쓸수록 버그라던가 문제가 발견. 하지만 수정은 매우 늦음. 나중에가면 다 만들어서쓰게됨.
  2. 스폰서가 존재하지않음. 언제든 사라질수있는 패키지
  3. 조금은 부족한 문서.
  • 쓰면서 느낀점.
  1. context가 필요없는것은 flutter를 입문할때만장점.. 알면알수록 커스터마이징할때마다 필요한건 context 나중에는 get.to, get.width등등 대부분의 코드들이 필요없어지는데 패키지는 너무 큼.
  2. 너무 간단한나머지 실수하기 쉬움. 거기에 전역적인 상태관리도 너무 간편한나머지 하다보면 페이지가 렌더링 안됬는데도 다른 위젯에서 상태업데이트되서 에러가 터지는 현상이 매우많았음.
  3. 딱히 참고할만한 코드가 없음. 다들 너무 스타일이 달라서 뭐가 좋다 라고 하기 어려움. 조금 알만한사람이 짠코드는 대부분 bloc이나 provider사용중..
  4. 하지만 이런 간단함은 충분히 매력적. bloc을 만들때 해야되는 여러가지 세팅이 번거롭기때문에 빠르게 앱을 만들수가 있음.

  • 장점
  1. 명확하게 로직과 ui를 분리가 가능하게함.
  2. 많이들 사용하기때문에 넘치는 예제와 자세한 문서들
  3. 많은 스폰서.
  • 단점
  1. 리덕스를 처음 마주할때랑 비슷한 느낌...
  2. 기본적으로 써야하는 코드가 너무많음..
  • 쓰면서 느낀점.
  1. 정리가 명확하게 되있기때문에 ui와 로직을 완전히 분리할수있다. 쓰다보면 거의대부분 ui에서는 stateful을 안쓰게되는것같다.
  2. 하지만 만들어야되는게 너무많다...
bloc.dart event.dart state.dart view.dart..........
  1. 장점이자 단점이지만 bloc내부에선 context를 사용할수없다.

    기본적으로 context는 ui에서만 사용하기를 권장하고있기는하다

  2. 확실히 깔끔해보이는 코드지만 분량이 거대해진다.

결론

솔직히 bloc을 사용하다보면 flutter를 조금더 이해하게되는것같다. getx에 편리함에 익숙해져서 멈춰있다고 생각된다면 bloc을 사용해보자.
그리고 구글님이 가끔하는 챌린지에서도 예제를 bloc으로 주기때문에 잘짜여진 코드를 참고할수있다.

무튼 간단하게 만드는 프로젝트라면 getx를 권장하고, 조금 규모가있다면 bloc을 사용해보자

고럼 이만..
이거쓰려고 나름 검색 열심히했다. ㅋㅋㅋ

profile
플러터존잼

2개의 댓글

comment-user-thumbnail
2022년 3월 24일

오옹 저도 getX는 무언가 전부 다해줘서 무섭더라구요ㅋㅋㅋ사용하기가 좀 그래서 저는 Provider를 쓰고있어요ㅋㅋㅋ

1개의 답글