[flutter] get_it을 사용한 소셜 미디어 연동

소셜 미디어 연동 기능을 구현할 때 종종 다른 클래스들 간에 의존성을 가지게 됩니다. 이때 get_it 패키지를 사용하면 의존성 주입을 통해 각 클래스 간의 결합을 낮출 수 있습니다.

get_it이란 무엇인가?

get_it의존성 주입(Dependency Injection)을 간편하게 구현할 수 있도록 도와주는 Service locator 패턴을 구현한 플러터 패키지입니다.

서비스 로케이터 패턴은 애플리케이션 내에서 서비스 또는 클래스의 인스턴스를 전역적으로 관리하는 방식을 말합니다. 이 패턴을 사용하면 클래스 간의 의존성을 직접적으로 처리할 필요 없이, get_it을 통해 필요한 서비스를 쉽게 찾아 사용할 수 있습니다.

get_it을 이용한 소셜 미디어 연동

예를 들어, 구글 소셜 로그인과 페이스북 소셜 로그인을 구현한다고 가정해봅시다. 각 소셜 미디어의 로그인 및 로그아웃 기능을 구현한 클래스를 만든 후, get_it을 이용하여 이를 연결합니다.

class GoogleSocialLoginService {
  // Google 소셜 로그인 기능을 구현한 클래스
}

class FacebookSocialLoginService {
  // Facebook 소셜 로그인 기능을 구현한 클래스
}

void main() {
  // get_it을 사용하여 각 소셜 미디어의 로그인 기능에 대한 인스턴스를 등록
  final getIt = GetIt.instance;
  getIt.registerSingleton<GoogleSocialLoginService>(GoogleSocialLoginService());
  getIt.registerSingleton<FacebookSocialLoginService>(FacebookSocialLoginService());

  // 소셜 미디어 연동을 위해 get_it에서 인스턴스를 가져와 사용
  var googleSocialLoginService = getIt<GoogleSocialLoginService>();
  var facebookSocialLoginService = getIt<FacebookSocialLoginService>();
}

위 예제에서 getIt.instance를 통해 전역적인 getIt 인스턴스를 생성하고, registerSingleton 메서드를 사용하여 각 소셜 미디어의 로그인 서비스를 등록합니다. 이후 소셜 미디어 연동이 필요한 곳에서 getIt을 통해 해당 서비스의 인스턴스를 가져와 사용할 수 있습니다.

이렇게 get_it을 사용하면 각 소셜 미디어의 로그인 서비스 클래스 간의 결합도를 낮추고, 유연하고 확장 가능한 소셜 미디어 연동 기능을 구현할 수 있습니다.

결론

get_it을 사용하면 플러터 애플리케이션 내에서 각 클래스들 간의 의존성을 간편하게 관리할 수 있습니다. 소셜 미디어 연동과 같이 다양한 기능을 구현할 때, get_it을 활용하여 코드의 유지보수성과 확장성을 향상시킬 수 있습니다.