여전히 getx가 플러터 패키지 1위 자리를 지키고 있지만,
getx를 사용하는 법에 대해서 제대로 아는 사람은 거의 없는 것 같다. 물론 나를 포함해서.
당신은 GetRouterOutlet 이 뭔지 아는가?
getx는 getxservice, getxcontroller, getbinding, 등등 구성요소들을 정의하고 있고,
결정적으로 GetMaterialApp 같은 앱 전체를 감싸는 래퍼가 있기 때문에 getx 제작자가 의도한 범위 내에서 사용하지 않으면 기존 바닐라 플러터에서 너무나도 당연하게 됐던 것들이 되지 않을 수 있다.
일반 패키지 사용자의 입장에서 이 범위를 파악하기는 쉽지 않다. 기껏해야 문제가 발생했을 때 커뮤니티에 물어보거나 이슈를 등록하는 것이 최선이다.
또는 이 글에서 소개할 get_cli 를 사용할 수 있다.
https://pub.dev/packages/get_cli
getx를 만든 사람이 만든 플러그인이고, 만든 사람도 실제로 사용하고 있기 때문에 신뢰할 수 있다.
말 그대로 CLI(Command Line Interface) 이고, 이걸 이용하면 flutter 명령어를 전혀 사용하지 않아도 된다.
이건 pubspec.yaml 에 추가하는 것이 아니다.
설치와 프로젝트 생성
flutter pub global activate get_cli
get create project
바인딩이나 컨트롤러나 각종 보일러플레이트들이 매우 쉽게 생성된다.
아키텍처
get init 명령어를 이용하면 프로젝트 구조를 잡아 줄 수 있다.
https://github.com/Katekko/ekko_app
둘 다 포르투갈어이기 때문에 번역기의 도움이 필요하지만 설명을 따로 읽지 않아도 getx를 어느 정도 안다면 금방 적응할 수 있다.
2번은 Uncle bob 선생님이 말한 그 아키텍처가 맞다.
둘 다 써본 경험으로는 개인적으로 대부분의 프로젝트에서는 2번보다 getx에 특화된 1번이 괜찮은 느낌이었다.
좀 더 복잡한 프로젝트라면 2번 아키텍처로 가겠지만, clean 아키텍처는 블록으로 구현했을 때 좀 더 안정적으로 되는 것 같다.