[flutter] get_it를 사용하여 플러터 앱에서 디바이스 특정 기능을 어떻게 활용하는가?

소개

get_it은 의존성 주입(Dependency Injection) 라이브러리로, 플러터 앱에서 디바이스 특정 기능을 활용하기 위해 사용됩니다. 이 라이브러리는 앱의 다양한 모듈 및 클래스 간의 의존성을 관리하고, 객체를 주입할 수 있도록 도와줍니다. 이를 통해 코드의 유연성과 재사용성을 향상시킬 수 있습니다.

get_it 설치하기

get_it를 사용하기 위해 먼저 get_it 패키지를 pubspec.yaml 파일에 추가해야 합니다. 다음과 같이 dependencies: 안에 get_it: ^x.x.x 라인을 추가하세요. x.x.x는 최신 버전을 의미합니다.

dependencies:
  flutter:
    sdk: flutter
  get_it: ^x.x.x

설정이 끝났으면 터미널에서 다음 명령어를 실행하여 패키지를 다운로드합니다.

$ flutter pub get

get_it를 사용하여 디바이스 특정 기능 활용하기

1. 의존성 주입 서비스 등록하기

앱에서 사용할 디바이스 특정 기능을 활용하기 위해 먼저 get_it를 사용하여 해당 기능의 의존성 주입 서비스를 등록해야 합니다. 예를 들어 디바이스의 위치 정보를 사용하려면, LocationService 라는 클래스를 작성하고, get_it에 등록합니다.

class LocationService {
  // 위치 정보 관련 로직 작성
}

void registerServices() {
  GetIt.instance.registerLazySingleton<LocationService>(() => LocationService());
}

위 예시에서 registerServices 함수는 get_it에 LocationService를 등록하는 역할을 합니다. registerLazySingleton을 사용하면 앱의 라이프사이클 동안 한 번만 생성된 싱글톤 객체로 등록됩니다.

2. 의존성 주입 서비스 사용하기

의존성 주입 서비스를 등록한 후에는 해당 기능을 사용할 수 있습니다. get_it의 GetIt 인스턴스에서 등록한 서비스를 가져와 사용하면 됩니다.

void main() {
  registerServices(); // get_it 서비스 등록

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final locationService = GetIt.instance<LocationService>();

    return MaterialApp(
      // 앱의 나머지 코드 작성
    );
  }
}

위 예시에서는 MyApp 클래스에서 GetIt.instance에서 LocationService를 가져와 사용하는 것을 볼 수 있습니다. 이제 locationService 객체를 활용하여 디바이스의 위치 정보를 얻을 수 있습니다.

결론

get_it를 사용하여 플러터 앱에서 디바이스 특정 기능을 활용하는 방법을 알아보았습니다. get_it를 사용하면 의존성 주입을 통해 코드의 유연성과 재사용성을 향상시킬 수 있습니다. get_it의 다양한 기능을 활용하여 앱을 개발해보세요.

참고 자료