[flutter] shared_preferences를 이용하여 앱에서 사용자가 선택한 로그아웃 시간을 저장하는 방법은?

shared_preferences 패키지를 사용하여 Flutter 앱에서 사용자가 선택한 로그아웃 시간을 저장할 수 있습니다. 이것은 사용자가 로그인 한 후 마지막으로 로그아웃한 시간을 저장하고, 나중에 앱이 다시 시작될 때 그 값을 다시 불러올 수 있도록 해줍니다.

1. shared_preferences 패키지 추가

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

dependencies:
  shared_preferences: ^2.0.6

그런 다음 터미널에서 아래 명령어를 실행하여 패키지를 가져옵니다.

flutter pub get

2. shared_preferences를 사용하여 데이터 저장하기

이제 shared_preferences 패키지를 사용하여 사용자가 선택한 로그아웃 시간을 저장하는 예제를 살펴보겠습니다.

import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  SharedPreferences _prefs;
  String _logoutTimeKey = 'logoutTime';

  @override
  void initState() {
    super.initState();
    _initSharedPreferences();
  }

  Future<void> _initSharedPreferences() async {
    _prefs = await SharedPreferences.getInstance();
  }

  void _saveLogoutTime(DateTime logoutTime) {
    _prefs.setString(_logoutTimeKey, logoutTime.toIso8601String());
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Save Logout Time'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            _saveLogoutTime(DateTime.now());
          },
          child: Text('Save Logout Time'),
        ),
      ),
    );
  }
}

위의 예제에서는 사용자가 버튼을 누를 때 현재 시간을 저장하도록 구성되어 있습니다.

3. 저장된 데이터 불러오기

앱이 재시작될 때 저장된 로그아웃 시간을 불러오기 위해서는 다음 코드를 사용할 수 있습니다.

Future<String> _getLogoutTime() async {
  return _prefs.getString(_logoutTimeKey) ?? 'No logout time saved';
}

결론

shared_preferences를 사용하여 Flutter 앱에서 사용자가 선택한 로그아웃 시간을 저장하는 방법을 알아보았습니다. 이를 통해 사용자 경험을 개선하고 필요한 데이터를 영구적으로 저장할 수 있습니다.

더 많은 정보를 원하시거나 추가적으로 도움이 필요하시면 공식 shared_preferences 문서를 확인해보세요.