이 문서에서는 Flutter 앱에서
shared_preferences
패키지를 사용하여 사용자의 마지막 로그인 일시를 저장하는 방법에 대해 설명합니다.
shared_preferences
는 Flutter에서 로컬 데이터를 간단하게 저장하고 검색하기 위한 패키지입니다. 이 패키지를 사용하여 사용자의 마지막 로그인 일시를 디바이스에 저장할 수 있습니다.
1. shared_preferences 추가하기
먼저, shared_preferences
패키지를 프로젝트에 추가해야 합니다. pubspec.yaml
파일을 열고 다음과 같이 패키지를 추가해주세요:
dependencies:
flutter:
sdk: flutter
shared_preferences: ^2.0.6
이후 터미널에서 flutter packages get
명령을 실행하여 패키지를 가져옵니다.
2. shared_preferences 초기화하기
앱 시작 시점에서 shared_preferences
를 초기화해야 합니다. 이 작업은 주로 앱 초기화를 담당하는 main()
함수에서 수행됩니다.
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// shared_preferences 초기화
SharedPreferences prefs = await SharedPreferences.getInstance();
runApp(MyApp());
}
3. 로그인 일시 저장하기
로그인 성공 시, 마지막 로그인 일시를 shared_preferences
에 저장합니다. 이렇게 하면 앱을 다시 시작하더라도 마지막 로그인 일시를 복원할 수 있습니다.
import 'package:shared_preferences/shared_preferences.dart';
// 로그인 성공 시 호출되는 함수
void saveLastLoginTime() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
DateTime now = DateTime.now();
String formattedTime = now.toIso8601String();
// 마지막 로그인 일시 저장
await prefs.setString('last_login_time', formattedTime);
}
4. 저장된 로그인 일시 불러오기
마지막 로그인 일시를 표시하려면 shared_preferences
에서 저장된 값을 가져와야 합니다. 예를 들어, 홈 화면에서 마지막 로그인 일시를 표시하려면 다음과 같이 코드를 작성할 수 있습니다.
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
String lastLoginTime = '';
@override
void initState() {
super.initState();
getLastLoginTime();
}
void getLastLoginTime() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
String savedTime = prefs.getString('last_login_time');
setState(() {
lastLoginTime = savedTime ?? '로그인 이력이 없습니다.';
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('홈'),
),
body: Center(
child: Text('마지막 로그인 일시: $lastLoginTime'),
),
);
}
}
이제 앱을 실행하고 로그인 후 홈 화면으로 이동하면 마지막 로그인 일시가 표시됩니다.
이것이 Flutter에서 shared_preferences
를 사용하여 사용자의 마지막 로그인 일시를 저장하는 방법입니다. 이 기능을 사용하면 앱이 재시작되더라도 사용자의 로그인 이력을 유지할 수 있습니다.
참고 자료: