[flutter] shared_preferences 를 사용하여 사용자가 저장한 메모를 저장하는 방법은 무엇인가요?

먼저, shared_preferences 패키지를 프로젝트에 추가해야 합니다. pubspec.yaml 파일에 다음 코드를 추가하세요:

dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^2.0.5

그런 다음, 패키지를 가져오기 위해 다음 코드를 main.dart 파일 상단에 추가하세요:

import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

사용자가 저장한 메모를 저장하기 위해 SharedPreferences 객체를 사용하겠습니다. 메모 저장 및 불러오기와 관련된 기능을 구현하기 위해 별도의 클래스를 만들어보겠습니다.

class MemoStorage {
  static const String _kMemoKey = 'memo';

  static Future<void> saveMemo(String memo) async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    await prefs.setString(_kMemoKey, memo);
  }

  static Future<String?> loadMemo() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    return prefs.getString(_kMemoKey);
  }
}

MemoStorage 클래스는 saveMemo 메소드를 사용하여 메모를 저장하고, loadMemo 메소드를 사용하여 저장된 메모를 불러옵니다. 이때, SharedPreferences.getInstance() 메소드를 사용하여 SharedPreferences 객체를 가져옵니다.

프로젝트에서 이 클래스를 사용하기 위해 다음 코드를 main.dart 파일에 추가합니다:

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String? memo;

  @override
  void initState() {
    super.initState();
    loadMemo();
  }

  void loadMemo() async {
    String? storedMemo = await MemoStorage.loadMemo();
    setState(() {
      memo = storedMemo;
    });
  }

  void saveMemo(String memo) {
    setState(() {
      this.memo = memo;
    });
    MemoStorage.saveMemo(memo);
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('메모 앱'),
        ),
        body: Column(
          children: [
            TextField(
              onChanged: saveMemo,
              decoration: InputDecoration(
                labelText: '메모를 입력하세요',
              ),
            ),
            SizedBox(height: 16),
            Text('저장된 메모: $memo'),
          ],
        ),
      ),
    );
  }
}

이제 앱을 실행하면, 사용자가 입력한 메모가 저장되고 출력되는 것을 확인할 수 있습니다. MemoStorage 클래스를 통해 사용자의 메모가 장치에 저장되기 때문에, 앱을 종료하고 다시 실행해도 저장된 메모가 유지됩니다.

이 방법을 사용하면, 사용자가 메모를 저장하고 불러오는 기능을 간단하게 구현할 수 있습니다. Flutter에서 shared_preferences를 사용하면 사용자 데이터를 쉽게 저장하고 관리할 수 있습니다.