[flutter] shared_preferences 를 사용하여 사용자가 저장한 주소록을 저장하는 방법은 무엇인가요?
이 예시에서는 Flutter 앱에서 사용자가 저장한 주소록을 shared_preferences 패키지를 사용하여 저장하는 방법에 대해 알아보겠습니다. shared_preferences 패키지는 키-값 쌍으로 데이터를 저장하고 검색하는 데 사용됩니다.
먼저, shared_preferences 패키지를 프로젝트에 추가해야 합니다. pubspec.yaml 파일에 다음 의존성을 추가해주세요:
dependencies:
flutter:
sdk: flutter
shared_preferences: ^2.0.6 // 최신 버전
그리고 flutter 패키지를 업데이트하기 위해 flutter pub get
명령을 실행해주세요.
이제 실제 코드에서 shared_preferences를 사용하여 주소록을 저장하는 방법을 살펴보겠습니다.
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
// 주소록을 저장하는 함수
Future<void> saveAddressBook(List<String> addressBook) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setStringList('address_book', addressBook);
}
// 주소록을 불러오는 함수
Future<List<String>> loadAddressBook() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
List<String>? addressBook = prefs.getStringList('address_book');
// 주소록이 없을 경우 빈 List를 반환
if (addressBook == null) {
return [];
}
return addressBook;
}
// 사용 예시
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: HomeScreen(),
);
}
}
class HomeScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Address Book'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton(
child: Text('Save Address Book'),
onPressed: () {
List<String> addressBook = ['John', 'Jane', 'Alice'];
saveAddressBook(addressBook);
},
),
ElevatedButton(
child: Text('Load Address Book'),
onPressed: () async {
List<String> addressBook = await loadAddressBook();
print(addressBook);
},
),
],
),
),
);
}
}
위의 예제에서는 saveAddressBook()
함수를 호출하여 사용자가 저장한 주소록을 저장하고, loadAddressBook()
함수를 호출하여 주소록을 불러옵니다.
이제 주소록을 저장하고 불러오는 단계가 완료되었습니다. Flutter 앱에서는 shared_preferences를 사용하여 사용자의 데이터를 간단하게 저장하고 검색할 수 있습니다.
더 자세한 내용은 shared_preferences 패키지 문서를 참조하시기 바랍니다.