이번 포스트에서는 Flutter 앱에서 사용자의 최근 연락한 사람 목록을 저장하는 방법에 대해 알아보겠습니다. 이를 위해 shared_preferences
라이브러리를 사용할 것입니다. shared_preferences
는 Flutter 애플리케이션에서 간단한 key-value 쌍 데이터를 영구적으로 저장하기 위한 방법을 제공합니다.
1. shared_preferences 라이브러리 추가하기
먼저, shared_preferences
라이브러리를 사용하기 위해 pubspec.yaml
파일에 다음과 같이 의존성을 추가합니다:
dependencies:
flutter:
sdk: flutter
shared_preferences: ^2.0.8
의존성을 추가한 후, 터미널에서 flutter pub get
명령어를 실행하여 변경 사항을 적용합니다.
2. 최근 연락한 사람 목록 저장하기
이제 shared_preferences
를 사용하여 최근 연락한 사람 목록을 저장하는 방법을 알아보겠습니다. 다음은 예시 코드입니다:
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
class RecentContactsPage extends StatefulWidget {
@override
_RecentContactsPageState createState() => _RecentContactsPageState();
}
class _RecentContactsPageState extends State<RecentContactsPage> {
List<String> recentContacts = [];
@override
void initState() {
super.initState();
_loadRecentContacts();
}
Future<void> _loadRecentContacts() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
List<String>? contacts = prefs.getStringList('recentContacts');
if (contacts != null) {
setState(() {
recentContacts = contacts;
});
}
}
Future<void> _saveRecentContacts() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setStringList('recentContacts', recentContacts);
}
void _addRecentContact(String contact) {
setState(() {
recentContacts.insert(0, contact);
if (recentContacts.length > 10) {
recentContacts.removeLast();
}
});
_saveRecentContacts();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Recent Contacts'),
),
body: ListView.builder(
itemCount: recentContacts.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(recentContacts[index]),
);
},
),
floatingActionButton: FloatingActionButton(
onPressed: () {
_addRecentContact('New Contact');
},
child: Icon(Icons.person_add),
),
);
}
}
위의 코드는 Stateful 위젯인 RecentContactsPage
를 정의합니다. recentContacts
리스트는 최근 연락한 사람들을 저장하고, _loadRecentContacts()
함수는 저장된 목록을 로드합니다. _saveRecentContacts()
함수는 최근 연락한 사람 목록을 저장하며, _addRecentContact()
함수는 새로운 연락처를 추가합니다.
3. 최근 연락한 사람 목록 화면에 출력하기
위의 코드에서 RecentContactsPage
를 화면에 출력하기 위해 다른 위젯에서 RecentContactsPage
를 호출하면 됩니다. 예를 들어 main.dart
파일에서 다음과 같이 RecentContactsPage
를 사용할 수 있습니다:
import 'package:flutter/material.dart';
import 'recent_contacts_page.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: RecentContactsPage(),
);
}
}
이제 앱을 실행하면 최근 연락한 사람 목록이 표시되고, 새로운 연락처를 추가할 때마다 목록이 업데이트됩니다.
이상으로 Flutter 앱에서 shared_preferences
라이브러리를 사용하여 최근 연락한 사람 목록을 저장하는 방법에 대해 알아보았습니다. shared_preferences
를 사용하면 간단하게 데이터를 저장하고 로드할 수 있습니다. 앱의 특정 기능에 적용할 수 있는 다른 데이터 저장 기술도 찾아보세요.