[flutter] shared_preferences 를 사용하여 사용자가 저장한 로그 목록을 저장하는 방법은 무엇인가요?
  1. shared_preferences 라이브러리를 프로젝트에 추가합니다. 이를 위해 pubspec.yaml 파일에 다음 의존성을 추가합니다:

    dependencies:
      shared_preferences: ^2.0.5
    
  2. 로그 목록을 저장하기 위한 클래스를 생성합니다. 이 클래스는 shared_preferences를 사용하여 로그를 저장하고 가져옵니다. 예를 들어, LogRepository 클래스를 다음과 같이 만들 수 있습니다:

    import 'package:shared_preferences/shared_preferences.dart';
    
    class LogRepository {
      static const String LOG_LIST_KEY = 'log_list';
    
      Future<List<String>> getLogs() async {
        final prefs = await SharedPreferences.getInstance();
        final logList = prefs.getStringList(LOG_LIST_KEY);
        return logList ?? [];
      }
    
      Future<bool> saveLog(String log) async {
        final prefs = await SharedPreferences.getInstance();
        List<String> logList = await getLogs();
        logList.add(log);
        return prefs.setStringList(LOG_LIST_KEY, logList);
      }
    }
    

    위의 예시에서는 getLogs 메소드를 통해 로그 목록을 가져오고, saveLog 메소드를 통해 새로운 로그를 저장합니다. 저장된 로그 목록은 SharedPreferences를 통해 StringList 형태로 저장되어 유지됩니다.

  3. 사용자가 로그를 저장하고 가져올 수 있는 UI를 만듭니다. 이 부분은 애플리케이션의 요구사항에 따라 다를 수 있습니다.

  4. 로그를 저장하고 가져오는 예시 코드는 다음과 같습니다:

    String log = 'This is a log message';
    
    // 로그 저장
    bool isSaved = await LogRepository().saveLog(log);
    if (isSaved) {
      print('Log saved successfully');
    } else {
      print('Failed to save log');
    }
    
    // 로그 가져오기
    List<String> logList = await LogRepository().getLogs();
    print('Log list: $logList');
    

    위의 코드에서는 LogRepository 클래스를 사용하여 로그를 저장하고 가져오고 있습니다.

이제 사용자가 애플리케이션에서 로그를 저장하고 가져올 수 있게 되었습니다.