본문 바로가기
Flutter/Flutter Programming

플러터에서 간편하게 데이터 저장하기: shared_preferences 패키지 사용법 가이드

by Maccrey 2024. 7. 1.
728x90

Flutter에서는 애플리케이션에서 간단한 데이터를 지속적으로 저장하고 관리할 수 있는 여러 패키지들이 있습니다.

그 중에서도 shared_preferences 패키지는 간단하게 키-값 쌍 형태로 데이터를 저장하고, 필요할 때 불러올 수 있는 기능을 제공하여 매우 유용합니다.

이번 글에서는 shared_preferences 패키지의 기본적인 사용법과 다양한 옵션들에 대해 자세히 설명하겠습니다.

1. shared_preferences 패키지 설치

먼저, Flutter 프로젝트에서 shared_preferences 패키지를 사용하려면 pubspec.yaml 파일의 dependencies에 해당 패키지를 추가해야 합니다.

dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^2.0.7  # 최신 버전 확인하여 버전 명시

위와 같이 shared_preferences 패키지를 추가한 후에는 터미널에서 다음 명령어를 실행하여 패키지를 설치합니다.

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 StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomePage(),
    );
  }
}

class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  TextEditingController _textController = TextEditingController();
  String _savedText = '';

  @override
  void initState() {
    super.initState();
    _loadData(); // 앱 실행 시 데이터 불러오기
  }

  // 데이터 불러오기
  void _loadData() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    setState(() {
      _savedText = prefs.getString('myTextKey') ?? ''; // 저장된 값이 없으면 빈 문자열 반환
    });
  }

  // 데이터 저장하기
  void _saveData() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    await prefs.setString('myTextKey', _textController.text); // 'myTextKey'라는 키로 값 저장
    setState(() {
      _savedText = _textController.text; // 저장 후 UI 업데이트
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('SharedPreferences 예제'),
      ),
      body: Padding(
        padding: EdgeInsets.all(16.0),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            TextField(
              controller: _textController,
              decoration: InputDecoration(
                hintText: '저장할 데이터를 입력하세요.',
              ),
            ),
            SizedBox(height: 20.0),
            ElevatedButton(
              onPressed: _saveData,
              child: Text('저장'),
            ),
            SizedBox(height: 20.0),
            Text('저장된 데이터: $_savedText'),
          ],
        ),
      ),
    );
  }
}

데이터 불러오기

위 예제 코드에서는 _saveData() 메서드를 사용하여 입력된 텍스트를 SharedPreferences에 저장하고, _loadData() 메서드를 사용하여 저장된 텍스트를 불러와 화면에 표시합니다.

3. shared_preferences 패키지의 주요 옵션들

SharedPreferences 패키지는 다양한 데이터 타입을 지원하며, 키-값 쌍으로 데이터를 관리할 수 있는 여러 메서드들을 제공합니다.

  • getString(key): 지정된 키로부터 문자열 값을 가져옵니다.
  • setString(key, value): 지정된 키에 문자열 값을 저장합니다.
  • getInt(key): 지정된 키로부터 정수 값을 가져옵니다.
  • setInt(key, value): 지정된 키에 정수 값을 저장합니다.
  • getDouble(key): 지정된 키로부터 double 값을 가져옵니다.
  • setDouble(key, value): 지정된 키에 double 값을 저장합니다.
  • getBool(key): 지정된 키로부터 불 값을 가져옵니다.
  • setBool(key, value): 지정된 키에 불 값을 저장합니다.
  • remove(key): 지정된 키의 데이터를 삭제합니다.

요약

shared_preferences 패키지는 Flutter 애플리케이션에서 간단한 데이터를 영구적으로 저장하고 관리할 수 있는 강력한 도구입니다.

애플리케이션의 설정, 사용자 선호도, 로그인 상태 등을 관리하는 데 매우 유용하게 사용될 수 있습니다.

위의 예제를 통해 기본적인 사용법을 익히고, 필요에 따라 추가적으로 활용할 수 있습니다.

 

 
 

수발가족을 위한 일기장 “나비일기장

 

https://play.google.com/store/apps/details?id=com.maccrey.navi_diary_release

 

구글플레이 앱 배포의 시작! 비공개테스트 20명의 테스터모집을 위한 앱 "테스터 쉐어"

 

https://play.google.com/store/apps/details?id=com.maccrey.tester_share_release

 

카카오톡 오픈 채팅방

https://open.kakao.com/o/gsS8Jbzg

 

728x90