[flutter] shared_preferences를 사용하여 데이터를 로컬에 영구적으로 저장하는 방법은?

안녕하세요! Flutter 애플리케이션에서 사용자 데이터를 영구적으로 저장하고 싶으신가요? 이를 위해 shared_preferences 패키지를 사용할 수 있습니다. 이 패키지를 사용하면 간단한 키-값 쌍 형태의 데이터를 안정적으로 로컬에 저장할 수 있습니다.

1. shared_preferences 패키지 추가

먼저, pubspec.yaml 파일에 다음과 같이 shared_preferences 패키지를 추가합니다.

dependencies:
  shared_preferences: ^2.0.8

의존성을 추가한 후에는 터미널에서 flutter pub get 명령을 실행하여 패키지를 다운로드 및 설치해야 합니다.

2. Shared Preferences 사용하기

다음으로, shared_preferences 패키지를 사용하여 데이터를 로컬에 저장 및 검색하는 방법을 살펴보겠습니다. 아래는 간단한 예제 코드입니다.

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

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

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

class _MyAppState extends State<MyApp> {
  TextEditingController _controller = TextEditingController();
  String _savedText = '';

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

  _loadData() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    setState(() {
      _savedText = prefs.getString('savedText') ?? '';
    });
  }

  _saveData() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    prefs.setString('savedText', _controller.text);
    setState(() {
      _savedText = _controller.text;
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Shared Preferences 예제'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              TextField(
                controller: _controller,
                decoration: InputDecoration(
                  hintText: '텍스트를 입력하세요',
                ),
              ),
              ElevatedButton(
                onPressed: _saveData,
                child: Text('저장'),
              ),
              Text(_savedText),
            ],
          ),
        ),
      ),
    );
  }
}

위 코드는 텍스트를 입력하고 저장하는 간단한 앱을 만드는 예제입니다. 텍스트는 Shared Preferences를 사용하여 영구적으로 저장됩니다.

요약

Flutter에서 shared_preferences 패키지를 사용하여 로컬에 데이터를 영구적으로 저장하는 방법을 살펴보았습니다. 이를 통해 간단한 사용자 데이터를 보다 안전하게 유지할 수 있습니다.

더 많은 정보를 원하시거나 다른 도움이 필요하시다면, 도움을 주세요.

참고