본문 바로가기

코딩/코딩에서 중요한 개념들

Flutter Bloc 공부 1

반응형

 

Bloc 상태관리

 

 

Bloc는 flutter의 상태관리 패키지 중 하나입니다.. 좋아요는 6400개 

 

https://pub.dev/packages/flutter_bloc

 

flutter_bloc | Flutter package

Flutter Widgets that make it easy to implement the BLoC (Business Logic Component) design pattern. Built to be used with the bloc state management package.

pub.dev

 

 

국내에서는 Getx가 많이 쓰이고 있지만, 해외에서는 Bloc가 더 많이 쓰이는 듯 합니다.. Flutter 해외 유투버 영상을 많이 찾아보고 있는데.. Bloc 찬양을...ㅎㅎ 그래서 현재 제 프로젝트는 Getx이지만 하반기에 Bloc로 리팩토링을 해보려고 합니다. 

 

 

Bloc의 장점?

 

Bloc의 장점은 로직, 화면, 이벤트를 각 클래스로 나눠서 관리합니다.  

Bloc , Event, State  각 클래스 안에 세부적인 상태를 나누게 됩니다. 예를들어 Todo에서 Event에는 할일 추가, 할일 업데이트, 할일 삭제등이 있을 것이고, State에는 앱이 처음 실행되었을 때 db에 있는 데이터를 받아오는 상태, 삭제 후 리스트가 삭제 되는 상태 등이 있습니다. 

 

간단한 앱을 만들 때는 Bloc는 많은 코드로 불편함을 느낄 수 있지만, 앱이 성장함에 따라 여러 기능들이 복잡하게 이루어 질 때 Bloc는 아주 작은 단위의 기능들로 구성이 되어 있으니 유지 보수에 편하게 됩니다. 

 

 

Bloc의 단점?

 

아무래도 세세한 작은 기능을 따로 클래스로 관리를 하다보니 코드의 양이 다른 상태관리 패키지보다 2~3배는 더 많게 느껴집니다. 

Flutter를 배우는 사람들은 소규모 스타트업이나, 1인 개발자가 많은데 Bloc는 관리해야 하는 코드의 양이 많다는건 정말 부담되는 일입니다. 

 

그럼에도 Bloc를 배우고자 하는 이유는?

 

저는 1인 개발자이지만 Bloc의 정형화 된 사용 방법에 큰 매력을 느꼈습니다. 지금 제가 짜놓은 Getx 코드는 다른 개발자분이 보시면.. 기겁을 할 수 있습니다. 정말 이리저리 어지러운 코드입니다. 하나의 컨트롤러에 여러개의 페이지에 할당 하고 있어서 이 코드를 만든 제가 아니고서야 유지보스는 정말 힘든일일 것입니다. 

 

제가 하고자 하는 서비스의 기능들이 앞으로 계속 추가가 된다면 유지보수가 새로운 기능을 만드는 것보다 더 중요하게 생각됩니다. 서비스의 안정성이 유저 확보에 가장 중요한 부분이니까요. 

Bloc의 단점인 코드의 양은 GPT가 충분히 해결 해줄 것이라 생각됩니다..!!

 

 

 

728x90
반응형