비교 테이블
Provider | Getx | Bloc |
![]() |
![]() |
![]() |
가장 네이티브스러운 | 종합선물세트 | 엄격한 레고 |
플러터 튜토리얼때부터 눈에 익은 가장 친숙한 패키지 |
위젯, 라우터, 다이얼로그 등 필수 패키지를 한번에 활용가능한 다용도 종합세트 |
레고처럼 끼워야 하는 부위가 가장 엄격하게 적용된 느낌의 패키지 |
장점: 네이티브와 가장 가깝기 때문에 추후 수정이 필요할때, 협업할때 누구나 이해하기 쉽고 코드 가독성이 높다 | 장점:필요하다 싶은 기능들을 다 포함하여 별도의 라우팅 패키지가 필요없을 정도 | 장점:레고처럼 볼록한 부분은 다른 블록의 오목한 부분에 끼워야 한다. 디자인 철학이 엄격해서 그런지 패키지 내부 변수, 함수에 대한 설명도 충실하여 코드가 깔끔하게 나와서 프로젝트가 클수록, 코드줄이 많아지면 많아질수록 가독성이 좋아질 수밖에 없다. |
단점: 반복적인 코드가 많이 생긴다 -> 후속 패키지인 riverpod도 이를 해결하고자 hook 이란 별도의 패키지를 사용 | 단점: 하지만 전역 변수처럼 사용되기 쉬워 개발자가 쉽게 타락?하기 쉬워서 코드 가독성이 떨어지게 되기 쉽다 기능들이 많다보니 패키지 내부에서도 변수 설명이 부실하여 각 기능이 어떤건지 찾기 어렵다 |
단점 어렵다 코드양이 많아진다 |
프로젝트를 시작한지 얼마 안된 경우, 미숙련 개발자가 많을수록, 추후 변경점이 많을 것으로 예상될 때, 추천 |
개발자가 적을수록 개발 기간이 짧을수록 추천 |
개발자가 많을수록 데이터 소스가 많아질수록 기능이 많아질수록 추천 |
version 6.*.* ~ 2021년 10월 | version 4.*.*: 2021년 3월 | version 8.*.*~ 2021년 12월 |
riverpod은 공부는 해봤지만 프로젝트를 진행해본적이 없어 제외했습니다.
숙련된 개발자분들은 이미 알고 계신 내용들이겠지만,
이제 플러터를 시작하여 각 패키지의 느낌을 모르시는 분들을 위해 간단히 작성해 보았습니다.
조심스레 초심자 분들께 조언드리자면
riverpod의 hookConsumerWidget이나 get의 getview는 네이티브와 다른점이 많아서 시작할 때는 provider로 시작하시는 것들 추천드리며,
데이터의 레포지토리 관리가 중요하다면 어렵더라도 bloc를 추천드립니다.
'IT-dev' 카테고리의 다른 글
플러터 macros, data class에 관해 (0) | 2024.07.29 |
---|---|
[Flutter] 플러터 Bloc 코드 테스트 bloc_test 사용법 (1) | 2024.06.02 |
Flutter] Google Gemini 공식 패키지 등장 (0) | 2024.02.17 |
[Flutter] VS Code에서 Google Duet AI 적용하기 (1) | 2024.01.06 |
[Flutter] adaptive 위젯 종류 (0) | 2023.11.06 |
댓글