[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 패키지 문서를 참조하시기 바랍니다.