[flutter] get_it를 사용하여 플러터 앱에서 웹 API와 통신하는 방법은?

웹 API와 통신하기 위해 플러터 앱에서 Get_it을 사용하는 방법을 알아보겠습니다. Get_it은 의존성 주입(Dependency Injection) 패턴을 구현하기 위한 패키지입니다. 의존성 주입은 객체들 간의 의존성을 코드로 직접 구현하지 않고 독립적으로 관리하여 유연하고 테스트 가능한 앱을 개발하는 데 도움을 줍니다.

Get_it 패키지 설치하기

먼저 Get_it 패키지를 설치해야 합니다. pubspec.yaml 파일에 다음과 같이 추가해주세요:

dependencies:
  get_it: ^7.0.0

그리고 패키지를 설치하기 위해 터미널에서 다음 명령어를 실행합니다:

flutter pub get

Get_it 설정하기

Get_it를 설정하기 위해 앱의 시작점(Main 함수 등)에서 다음과 같이 코드를 작성합니다:

import 'package:get_it/get_it.dart';

GetIt getIt = GetIt.instance;

void main() {
  setupGetIt();
  runApp(MyApp());
}

void setupGetIt() {
  // 웹 API 인스턴스 생성 및 등록
  getIt.registerSingleton<API>(API());
}

class API {
  // 웹 API와 통신하기 위한 메서드들을 구현
}

위 코드에서 API 클래스는 웹 API와 통신하기 위한 메서드들을 구현하는 클래스입니다. 웹 API와 통신하는 로직은 이 클래스에 구현하면 됩니다.

setupGetIt 메서드에서는 웹 API의 인스턴스를 생성하고 getIt 객체에 등록합니다. 이렇게 등록한 인스턴스는 Get_it를 통해 어디서든 접근할 수 있게 됩니다.

Get_it 사용하기

이제 Get_it를 사용하여 웹 API와 통신하는 방법을 알아보겠습니다. 다음은 예시 코드입니다:

import 'package:flutter/material.dart';
import 'package:get_it/get_it.dart';

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // Get_it을 통해 API 인스턴스 가져오기
    API api = GetIt.I.get<API>();

    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('API Communication'),
        ),
        body: Center(
          child: RaisedButton(
            onPressed: () {
              // 웹 API와 통신하는 메서드 호출
              api.fetchData();
            },
            child: Text('Call API'),
          ),
        ),
      ),
    );
  }
}

위 코드에서 GetIt.I.get<API>()를 통해 API 클래스의 인스턴스를 가져와서 사용할 수 있습니다. 예시에서는 버튼을 누를 때마다 api.fetchData() 메서드를 호출하여 웹 API와 통신하는 예시를 보여주고 있습니다.

Get_it를 통해 의존성 주입을 구현하면 앱의 유지보수성과 테스트 용이성이 향상됩니다. Get_it를 사용하면 웹 API와의 통신을 격리하여 쉽게 변경할 수 있으며, 테스트할 때도 Mock 객체를 사용하여 독립적으로 테스트를 수행할 수 있습니다.

이제 Get_it를 사용하여 플러터 앱에서 웹 API와 통신하는 방법을 알게 되었습니다. Get_it를 활용하여 의존성 주입을 구현하면 앱의 유지보수성과 테스트 용이성을 향상시킬 수 있습니다.

참고 자료