[flutter] 플러터에서 오프라인 데이터 동기화 시간 기록 방법

오프라인에서 작업하고 나중에 동기화해야하는 경우 데이터 동기화 시간을 기록하는 것은 매우 중요합니다. 플러터에서는 shared_preferences 패키지를 사용하여 간단한 방법으로 오프라인 데이터 동기화 시간을 기록할 수 있습니다.

1. shared_preferences 패키지 추가하기

먼저, shared_preferences 패키지를 추가해야 합니다. pubspec.yaml 파일에 아래와 같이 패키지를 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^2.0.8

그리고 패키지를 가져오기 위해 pub get 명령을 실행합니다.

$ flutter pub get

2. 동기화 시간 기록하기

이제 오프라인 데이터 동기화 시간을 기록할 준비가 되었습니다. 아래의 코드를 참조하여 동기화 시간을 기록하는 기능을 구현합니다.

import 'package:shared_preferences/shared_preferences.dart';

Future<void> recordSyncTime() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  DateTime currentTime = DateTime.now();
  String formattedTime = currentTime.toString(); // 시간을 문자열로 변환

  await prefs.setString('last_sync_time', formattedTime);
}

위 코드는 SharedPreferences 인스턴스를 통해 last_sync_time이라는 키로 현재 시간을 저장합니다.

3. 동기화 시간 가져오기

동기화 시간을 기록했으므로, 필요한 경우 언제든지 동기화 시간을 가져올 수 있습니다. 아래의 코드를 참조하여 동기화 시간을 가져오는 기능을 구현합니다.

import 'package:shared_preferences/shared_preferences.dart';

Future<String> getLastSyncTime() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  String lastSyncTime = prefs.getString('last_sync_time');
  return lastSyncTime;
}

위 코드는 SharedPreferences 인스턴스를 통해 last_sync_time 키에 저장된 값을 가져옵니다.

4. 사용 예시

정의한 함수를 사용하여 예시를 만들어 보겠습니다.

void main() async {
  // 동기화 시간 기록
  await recordSyncTime();

  // 동기화 시간 가져오기
  String lastSyncTime = await getLastSyncTime();
  
  print('마지막 동기화 시간: $lastSyncTime');
}

위 예시를 실행하면, 현재 시간이 동기화 시간으로 기록되고 마지막 출력문에 마지막 동기화 시간이 출력됩니다.

결론

위 방법을 사용하여 플러터에서 오프라인 데이터 동기화 시간을 기록할 수 있습니다. 이를 활용하여 오프라인에서 작업한 내용을 효율적으로 동기화할 수 있습니다. shared_preferences 패키지는 이외에도 다양한 오프라인 데이터 관리 기능을 제공하므로, 필요에 따라 더 많은 기능을 활용해 보세요.

참고 자료