Flutter의 상태 관리 라이브러리 중 Bloc에 대해서 알아보겠습니다.
Bloc 공식 문서에 의하면 Bloc은 "간단하고, 가볍고, 높은 테스트 성능을 가진 상태 관리 라이브러리" 라고 소개하고 있습니다.
공식 문서 개요에도 나와있지만 Bloc은 Business Logic Component의 약자로 비즈니스 로직과 프레젠테이션(화면 구현) 코드를 철저히 구분하려는 느낌이 강한 라이브러리입니다.
2주 정도 사용해본 결과, GetX에 비해서 확실히 비즈니스 로직과 프레젠테이션이 철저히 구분되어 개발을 진행하는 느낌을 받았습니다. 비즈니스 로직을 구현할 때에도 Event와 State를 통해 모든 상황과 이벤트들을 사전에 기획하고 구현할 수 있다는 완전성과 다른 라이브러리의 의존이 높지가 않아서 Navigation, HTTP, Async 등 유틸적인 측면을 다른 라이브러리를 골라서 개발할 수 있다는 자유도가 장점이라고 느꼈습니다.
그렇지만 자유도가 높아 개발하는 방식이 한가지로 정해지지 않고 다양한 방법으로 개발할 수 있어 협업을 할 때 팀원들 모두 같이 배우고 컨벤션을 정할 시간이 필요할 것 같습니다. Bloc의 러닝 사이클 또한 짧지 않아 상태관리를 Bloc으로 도입할 시에 Bloc에 대한 이해와 협업 시의 컨벤션을 정하는 시간에 투자하는 것이 선행되어야 할 것 같습니다.
Bloc은 또한 문서와 깃허브가 잘 되어있어 혼자 배우는데 무리는 없을 것 같습니다. 문서에는 기본 개념과 간단한 튜토리얼을 통해 문서 구조와 기본적인 코드에 대해서 공부할 수 있고 깃허브엔 다양한 예제들이 있어 코드를 보고 이해하는데는 충분한 자료가 이미 올라와 있습니다.
다음 포스팅에서 cubit과 bloc 등 Bloc의 기본 개념으로 찾아뵙도록 하겠습니다.
'Flutter > Bloc' 카테고리의 다른 글
Bloc (3) - Cubit과 Bloc 코드로 이해하기 (0) | 2024.01.31 |
---|---|
Bloc (2) - Cubit과 Bloc의 개념 (0) | 2024.01.23 |
Bloc (0) - Bloc 배워보기 (1) | 2024.01.09 |