Flutter에서는 shared_preferences 패키지를 사용하여 사용자가 생성한 이벤트 목록을 로컬에 저장할 수 있습니다. shared_preferences 패키지는 간단한 키-값 쌍으로 데이터를 저장하고 검색하는 데 사용됩니다.
먼저, shared_preferences 패키지를 프로젝트에 추가해야 합니다. pubspec.yaml
파일에서 dependencies
섹션에 아래의 의존성을 추가해주세요:
dependencies:
flutter:
sdk: flutter
shared_preferences: ^2.0.8
이 의존성을 추가한 후에는 flutter pub get
명령을 실행하여 패키지를 다운로드하고 설치하세요.
이제 shared_preferences를 사용하여 이벤트 목록을 저장하는 방법을 알아보겠습니다. 다음은 예제 코드입니다:
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
class EventListPage extends StatefulWidget {
@override
_EventListPageState createState() => _EventListPageState();
}
class _EventListPageState extends State<EventListPage> {
List<String> eventList = [];
@override
void initState() {
super.initState();
loadEventList();
}
void loadEventList() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
List<String> savedEventList = prefs.getStringList('eventList');
if (savedEventList != null) {
setState(() {
eventList = savedEventList;
});
}
}
void saveEventList() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setStringList('eventList', eventList);
}
void addEvent(String event) {
setState(() {
eventList.add(event);
});
saveEventList();
}
void removeEvent(String event) {
setState(() {
eventList.remove(event);
});
saveEventList();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Event List'),
),
body: Column(
children: [
RaisedButton(
child: Text('Add Event'),
onPressed: () {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text('Add Event'),
content: TextField(
onChanged: (value) {
// Event 입력 필드에서 입력할 때마다 event 변수에 값을 업데이트합니다.
event = value;
},
),
actions: [
FlatButton(
child: Text('Cancel'),
onPressed: () {
Navigator.of(context).pop();
},
),
FlatButton(
child: Text('Add'),
onPressed: () {
addEvent(event);
Navigator.of(context).pop();
},
),
],
);
}
);
},
),
SizedBox(height: 20),
ListView.builder(
shrinkWrap: true,
itemCount: eventList.length,
itemBuilder: (BuildContext context, int index) {
return ListTile(
title: Text(eventList[index]),
trailing: IconButton(
icon: Icon(Icons.delete),
onPressed: () {
removeEvent(eventList[index]);
},
),
);
},
),
],
),
);
}
}
위의 코드는 Flutter 애플리케이션에서 이벤트 목록을 관리하는 간단한 예제입니다. EventListPage
위젯에서는 사용자에게 이벤트를 추가하고 삭제할 수 있는 기능을 제공합니다. SharedPreferences
객체를 사용하여 이벤트 목록을 로컬에 저장하고 불러오는 방법을 보여줍니다.
loadEventList
함수는 앱이 시작될 때 저장된 이벤트 목록을 로드합니다. 저장된 목록이 존재한다면, eventList
변수를 업데이트하고 화면을 다시 그립니다. saveEventList
함수는 eventList
를 로컬에 저장하고, addEvent
함수는 이벤트를 목록에 추가하고 저장합니다. 마지막으로, removeEvent
함수는 이벤트를 목록에서 제거하고 저장합니다.
위의 예제를 참고하여 shared_preferences를 사용하여 사용자가 생성한 이벤트 목록을 저장하고 관리할 수 있습니다.