[flutter] shared_preferences 를 사용하여 어플리케이션의 마지막 사용 일자를 저장하는 방법은 무엇인가요?

앱을 개발하다 보면 사용자의 마지막 사용 일자를 저장하고 싶을 때가 있습니다. 이를 위해 Flutter에서는 shared_preferences 패키지를 사용할 수 있습니다. shared_preferences를 사용하면 간단하게 데이터를 저장하고 불러올 수 있습니다.

shared_preferences 패키지 추가하기

먼저 shared_preferences 패키지를 pubspec.yaml 파일에 추가해야 합니다.

dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^2.0.6 # 최신 버전으로 지정하세요

저장한 후, 터미널에서 flutter pub get 명령어를 실행하여 패키지를 다운로드하고 프로젝트에 추가합니다.

사용자의 마지막 사용 일자 저장하기

shared_preferences를 사용해 어플리케이션의 마지막 사용 일자를 저장하는 방법을 알아보겠습니다.

먼저, SharedPreferences 클래스의 인스턴스를 생성합니다. 이 클래스는 앱의 데이터를 저장하고 불러오는 기능을 제공합니다.

import 'package:shared_preferences/shared_preferences.dart';

void saveLastUsedDate() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  DateTime now = DateTime.now();
  String lastUsedDate = now.toString(); // 마지막 사용 일자를 문자열로 변환합니다.
  prefs.setString('lastUsedDate', lastUsedDate); // shared_preferences에 저장합니다.
}

위의 코드에서 SharedPreferences.getInstance() 메서드를 통해 SharedPreferences 인스턴스를 얻고, 현재 시간을 DateTime.now()로 가져옵니다. 마지막으로 setString() 메서드를 사용하여 ‘lastUsedDate’라는 키로 값을 저장합니다.

저장된 마지막 사용 일자 불러오기

이제 저장된 마지막 사용 일자를 불러오는 방법을 알아보겠습니다.

import 'package:shared_preferences/shared_preferences.dart';

void getLastUsedDate() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  String? lastUsedDate = prefs.getString('lastUsedDate'); // shared_preferences에서 값을 가져옵니다.
  
  if(lastUsedDate != null) {
    DateTime lastUsed = DateTime.parse(lastUsedDate); // 문자열로 저장된 값을 DateTime 타입으로 변환합니다.
    print('Last used date: $lastUsed');
  } else {
    print('No last used date found');
  }
}

위의 코드에서도 SharedPreferences.getInstance() 메서드를 통해 SharedPreferences 인스턴스를 얻어옵니다. 그리고 getString() 메서드를 사용하여 ‘lastUsedDate’ 키로 저장된 값을 가져옵니다.

저장된 값이 null이 아닌 경우, 문자열로 저장된 값을 DateTime.parse() 메서드를 사용하여 DateTime 타입으로 변환한 후 출력합니다. 저장된 값이 없는 경우에는 “No last used date found”를 출력합니다.

이제 saveLastUsedDate()getLastUsedDate() 함수를 필요한 곳에서 호출하여 마지막 사용 일자를 저장하고 불러올 수 있습니다.