[flutter] get_it를 사용하여 웹 서비스 API와의 의존성을 어떻게 주입하는가?

이번 글에서는 Flutter 앱에서 외부 웹 서비스 API와의 의존성을 관리하기 위해 get_it 패키지를 사용하는 방법에 대해 알아보겠습니다.

의존성 주입(Dependency Injection)은 앱의 구성 요소 간의 상호 의존성을 관리하는 디자인 패턴입니다. 이는 코드의 테스트 및 유지 보수를 용이하게 하고, 앱의 유연성과 확장성을 향상시킵니다.

get_it 소개

get_it은 Flutter 앱에서 의존성 관리를 위한 싱글톤 패턴을 구현하기 위한 편리한 패키지입니다. 이 패키지는 전역으로 액세스 가능한 객체 컨테이너를 제공하며, 다른 객체를 주입하는 데 사용됩니다.

패키지 설치

먼저, pubspec.yaml 파일에 get_it 패키지를 추가해야 합니다. 아래와 같이 작성하세요:

dependencies:
  get_it: ^7.2.0

그런 다음, 패키지를 설치하기 위해 터미널에서 다음 명령을 실행하세요:

flutter pub get

get_it을 사용하여 API 의존성 주입하기

  1. 의존성을 주입할 클래스를 생성합니다. 예를 들어, WebService라는 클래스를 생성하고 API 호출을 관리하는 기능을 추가합니다:
class WebService {
  Future<String> fetchData() async {
    // API 호출 로직
    return "API response";
  }
}
  1. get_it을 사용하여 의존성을 주입할 클래스를 등록합니다. 앱의 시작 시점에 이 작업을 수행하는 것이 좋습니다. 예를 들어, main.dart 파일에서 다음과 같이 작성하세요:
import 'package:flutter/material.dart';
import 'package:get_it/get_it.dart';

import 'webservice.dart';

void main() {
  // GetIt 컨테이너 초기화
  GetIt.instance.registerSingleton<WebService>(WebService());

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      // 앱 구성
    );
  }
}
  1. 의존성을 주입받을 클래스에서 get_it 컨테이너를 사용하여 인스턴스를 가져옵니다. 예를 들어, HomePage라는 위젯에서 WebService 인스턴스를 사용하려면 다음과 같이 작성하세요:
import 'package:flutter/material.dart';
import 'package:get_it/get_it.dart';

import 'webservice.dart';

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    WebService webService = GetIt.instance.get<WebService>();

    // WebService 인스턴스 사용

    return Scaffold(
      // 위젯 구성
    );
  }
}

이제 get_it 패키지를 사용하여 Flutter 앱에서 외부 웹 서비스 API와의 의존성을 주입하는 방법에 대해 알아보았습니다. 이를 통해 앱의 유지 보수성과 테스트 용이성을 향상시킬 수 있습니다.

더 자세한 내용은 get_it 패키지의 공식 문서를 참조하세요.