Bloc 상태관리
Bloc는 flutter의 상태관리 패키지 중 하나입니다.. 좋아요는 6400개
https://pub.dev/packages/flutter_bloc
국내에서는 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가 충분히 해결 해줄 것이라 생각됩니다..!!
'코딩 > 코딩에서 중요한 개념들' 카테고리의 다른 글
Graph ql, Firebase data connect (1) | 2025.01.03 |
---|---|
Flutter - supabase 회원가입 로직 구현 할 때 배웠던 개념들 (0) | 2024.02.18 |
비전공자가 이해하는 DB의 세계 (2) | 2023.12.03 |
Oauth2 (0) | 2023.11.15 |
GPT를 이용한 블로그 수익에 대한 내 개인적인 생각 (1) | 2023.02.17 |