Flutter/Package

[Flutter] GetX ① - 소개

찌김이 2022. 8. 28. 06:00
728x90
반응형

이번 포스팅에서는 플러터의 거의 모든 것을 다 구현할 수 있는 GetX 에 대해서 포스팅합니다.

 

 

get | Flutter Package

Open screens/snackbars/dialogs without context, manage states and inject dependencies easily with GetX.

pub.dev

 

GetX 로 할 수 있는 것

라우팅

스낵바, 다이얼로그, 바텀시트

상태관리

종속성 관리

테마

http

Shared Preference

.

.

 

GetX 의 최대 강점은 생산성입니다.

GetX 의 장점으로 가장 먼저 소개할 수 있는 부분이며 개발자가 가장 와닿을 수 있는 부분입니다.

상술한 모든 것들을 GetX 하나를 통해 GetX 없이 구현하는 것보다 직관적인 코드로 간단하게 구현할 수 있으며 개발자가 신경 써야 할 부분들을 줄여주어서 개발을 빠르게 진행할 수 있습니다.

 

라우팅 코드로 예를 들면 바로 이해가 가실 겁니다.

// Normal
Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => NextScreen()),
  );
  
// GetX
Get.to(NextScreen());

문서를 보시면 아시겠지만 라우팅뿐만 아니라 다른 기능들도 모두 간단하게 구현할 수 있습니다.

 

그 외의 장점으로는

  • 컨트롤러들을 사용되지 않을 때 제거해주기 때문에 개발자분들은 더욱더 개발에만 신경 쓸 수 있습니다.
  • 성능과 최소한의 리소스 소비에 중점을 두기 때문에 Streams나 ChangeNotifier를 사용하지 않음
  • View, 프레젠테이션 로직, 비즈니스 로직, 종속성 주입 및 내비게이션을 완전히 분리하여 관리
  • 자체 종속성 주입 기능을 사용하여 DI를 뷰에서 완전히 분리하기 때문에 MultiProvider 와 같은 위젯 트리에서 컨트롤러/모델/블록으로 주입할 필요가 없음

 

GetX 를 짧게 써본 입장에서 우려되는 점은...

정말 편하고 빠르게 개발할 수 있다는 큰 장점이 있지만, 너무 많은 것들을 GetX 를 통해 개발하니 불안함이 느껴집니다.

지금 당장은 그럴 일은 없겠지만, 후에 GetX 의 업데이트가 어느 순간 멈춰버린다면??

 개인적인 이야기지만 프리랜서로 있을 때 안드로이드 유지보수일을 하나 맡았었던 적이 있었는데, 이미지 업로더가 작동 안 되니 고쳐달라는 것이었습니다.

이미지 업로더는 직접 구현을 한 것이 아닌 라이브러리를 통해 구현한 것이었고 2018년도에 마지막 업데이트를 한 상황이었습니다. 

업데이트를 하지 않았기 때문에 안드로이드 최신 버전에 대한 대응이 되지 않았고 결국엔 그 라이브러리를 도려내고 새롭게 기능을 구현해서 시간을 좀 들였던 적이 있습니다. 

 저의 이야기는 단순히 이미지 업로드의 기능에서 문제가 생겨 그 기능을 사용하는 라이브러리만 손보면 됐었습니다만, GetX 는 앱의 대부분의 기능에 영향을 주고 있습니다. 치명적인 결함이 발생했을 때 대응할 수 있는 시간이 더욱 길 것이며, 앱 전체를 갈아엎어야 하는 지옥문이 열리는 상황이 생길 수도 있을 것 같습니다. 

 

 

소개하는 글에서 너무 단점만 부각시킨 것 같습니다.

다음 포스팅 부터는 GetX 의 기능들을 하나하나 소개하며 장점들을 보여드리겠습니다.

728x90
반응형