[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 패키지를 사용하여 로컬에 데이터를 영구적으로 저장하는 방법을 살펴보았습니다. 이를 통해 간단한 사용자 데이터를 보다 안전하게 유지할 수 있습니다.
더 많은 정보를 원하시거나 다른 도움이 필요하시다면, 도움을 주세요.