소개
Flutter에서 로컬 데이터 저장소를 사용하는 것은 앱의 상태 관리에 매우 중요합니다. 이를 위해 dependency injection(DI)을 사용하여 효율적으로 데이터 저장소를 관리할 수 있습니다. 이 글에서는 get_it 패키지를 사용하여 DI를 구현하고, 플러터 앱에서 로컬 데이터 저장소를 어떻게 활용하는지 알아보겠습니다.
get_it 패키지 설치하기
get_it 패키지는 의존성 관리를 위해 사용되는 패키지입니다. 다음과 같이 pubspec.yaml 파일에 get_it 패키지를 추가합니다.
dependencies:
get_it: ^7.1.3
그리고 패키지를 적용하기 위해 터미널에서 다음 명령을 실행합니다.
flutter pub get
get_it 등록하기
DI를 구현하기 위해서는 get_it 인스턴스를 등록해야 합니다. 가장 일반적인 방법은 main.dart 파일에서 사용되는 데이터 저장소를 등록하는 것입니다. 다음과 같이 코드를 작성해봅시다.
import 'package:flutter/material.dart';
import 'package:get_it/get_it.dart';
// 데이터 저장소 클래스
class LocalStorage {
void saveData(String data) {
// 데이터를 저장하는 로직
}
}
void main() {
GetIt.instance.registerLazySingleton(() => LocalStorage());
runApp(MyApp());
}
위의 코드에서는 LocalStorage 클래스의 인스턴스를 get_it에 등록하고 있습니다. registerLazySingleton
메서드를 사용하면 앱 내에서 공유되는 single instance로 등록되어 효율적인 메모리 관리를 할 수 있습니다.
get_it 사용하기
이제 등록된 데이터 저장소 인스턴스를 어떻게 사용하는지 알아보겠습니다. 위에서 등록한 LocalStorage 인스턴스를 다른 화면에서 사용하는 예제 코드를 작성해보겠습니다.
import 'package:flutter/material.dart';
import 'package:get_it/get_it.dart';
class DataSavingScreen extends StatelessWidget {
final LocalStorage localStorage = GetIt.instance<LocalStorage>();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Data Saving Screen'),
),
body: Center(
child: FlatButton(
onPressed: () {
localStorage.saveData('Example data');
},
child: Text('Save Data'),
),
),
);
}
}
위의 코드에서는 GetIt.instance<LocalStorage>()
를 통해 get_it에서 등록된 LocalStorage 인스턴스를 가져와 사용하고 있습니다.
이로써 get_it 패키지를 사용하여 플러터 앱에서 로컬 데이터 저장소를 효율적으로 활용하는 방법을 알아보았습니다. get_it을 사용하면 의존성 관리를 편리하게 할 수 있고, 데이터 저장소를 효율적으로 관리할 수 있습니다.
더 자세한 내용은 get_it 패키지 문서를 참고하세요.