[flutter] get_it과 네트워크 통신 라이브러리의 연동

이번에는 Flutter 앱에서 get_it을 사용하여 의존성 주입을 하고, http 라이브러리를 사용하여 네트워크 통신을 하는 방법에 대해 알아보겠습니다.

의존성 주입은 앱 전체적으로 사용되는 인스턴스들을 효율적으로 활용하기 위해 필요한 디자인 패턴입니다.

get_it은 이를 간단하게 구현할 수 있도록 도와주는 라이브러리입니다.

1. get_it 설치

가장 먼저 get_it 라이브러리를 설치해야 합니다. pubspec.yaml 파일에 아래와 같이 추가해줍니다.

dependencies:
  get_it: ^7.1.3

그리고 터미널에서 flutter pub get을 실행하여 라이브러리를 다운로드 받습니다.

2. get_it 사용

의존성 주입을 하려는 클래스의 인스턴스를 get_it에 등록하여 사용할 수 있습니다.

아래는 ApiService 클래스를 의존성 주입하기 위한 예제 코드입니다.

import 'package:get_it/get_it.dart';

GetIt getIt = GetIt.instance;

void setupLocator() {
  getIt.registerLazySingleton<ApiService>(() => ApiService());
}

위 코드에서 registerLazySingleton 메서드를 사용하여 ApiService 클래스의 인스턴스를 등록했습니다.

3. http 통신 라이브러리 설치

이제 http 패키지를 설치해야 합니다. pubspec.yaml 파일에 아래와 같이 추가해줍니다.

dependencies:
  http: ^0.14.0

다시 터미널에서 flutter pub get을 실행하여 라이브러리를 다운로드 받습니다.

4. http 통신 사용

의존성 주입이 완료된 ApiService 클래스를 사용하여 http 통신을 할 수 있습니다.

import 'package:http/http.dart' as http;
import 'locator.dart';

class ApiService {
  Future<http.Response> fetchData() {
    return http.get('https://api.example.com/data');
  }
}

void main() async {
  setupLocator();
  ApiService apiService = getIt<ApiService>();
  http.Response response = await apiService.fetchData();
  print(response.body);
}

위 코드에서 ApiService 클래스의 인스턴스를 가져와 fetchData 메서드를 호출하여 데이터를 가져왔습니다.

이제 get_it을 사용하여 의존성 주입을 하고, http 라이브러리를 사용하여 네트워크 통신을 할 수 있게 되었습니다.

더 많은 정보는 get_it 문서http 문서를 참고해주세요.