이번에는 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 문서를 참고해주세요.