[flutter] shared_preferences 를 사용하여 사용자가 선택한 언론사 정보를 저장하는 방법은 무엇인가요?
  1. shared_preferences 패키지 추가하기: 먼저, shared_preferences 패키지를 Flutter 프로젝트에 추가해야 합니다. pubspec.yaml 파일의 dependencies 섹션에 다음을 추가합니다:

    dependencies:
      flutter:
        sdk: flutter
      shared_preferences: ^2.0.6
    

    패키지를 추가한 후에는 flutter pub get 명령어를 실행하여 의존성을 설치합니다.

  2. 언론사 선택 정보 저장하기: 사용자가 선택한 언론사 정보를 저장하기 위해 shared_preferences 패키지의 SharedPreferences 클래스를 사용합니다. 예를 들어, 사용자가 선택한 언론사 값을 selectedNewspaper라는 변수에 저장하려면 다음과 같이 코드를 작성할 수 있습니다:

    import 'package:flutter/material.dart';
    import 'package:shared_preferences/shared_preferences.dart';
    
    class NewspaperSelectionPage extends StatefulWidget {
      @override
      _NewspaperSelectionPageState createState() => _NewspaperSelectionPageState();
    }
    
    class _NewspaperSelectionPageState extends State<NewspaperSelectionPage> {
      String selectedNewspaper = '';
    
      @override
      void initState() {
        super.initState();
          
        // 이전에 선택한 언론사 정보 불러오기
        loadSelectedNewspaper();
      }
    
      Future<void> loadSelectedNewspaper() async {
        SharedPreferences prefs = await SharedPreferences.getInstance();
        String savedNewspaper = prefs.getString('selected_newspaper') ?? '';
        setState(() {
          selectedNewspaper = savedNewspaper;
        });
      }
    
      Future<void> saveSelectedNewspaper(String newspaper) async {
        SharedPreferences prefs = await SharedPreferences.getInstance();
        setState(() {
          selectedNewspaper = newspaper;
        });
        await prefs.setString('selected_newspaper', newspaper);
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text('언론사 선택'),
          ),
          body: Column(
            children: [
              // 언론사 선택 UI 구현
              // ...
                 
              RaisedButton(
                child: Text('선택 완료'),
                onPressed: () {
                  // 선택한 언론사 정보 저장하기
                  saveSelectedNewspaper(selectedNewspaper);
                  Navigator.pop(context);
                },
              ),
            ],
          ),
        );
      }
    }
    

    loadSelectedNewspaper() 함수는 이전에 사용자가 선택한 언론사 정보를 불러와 selectedNewspaper 변수에 저장합니다. 그리고 saveSelectedNewspaper() 함수는 선택한 언론사 정보를 SharedPreferences에 저장하고 UI를 업데이트합니다. 선택 완료 버튼을 눌렀을 때 saveSelectedNewspaper() 함수를 호출하여 선택한 언론사 정보를 저장하고 이전 화면으로 돌아갑니다.

  3. 저장된 언론사 정보 불러오기: 다음은 저장된 언론사 정보를 불러오는 예시 코드입니다:

    Future<String> getSelectedNewspaper() async {
      SharedPreferences prefs = await SharedPreferences.getInstance();
      String savedNewspaper = prefs.getString('selected_newspaper') ?? '';
      return savedNewspaper;
    }
    

    위 코드는 SharedPreferences에서 저장된 언론사 정보를 불러와 반환합니다. 사용할 때는 getSelectedNewspaper() 함수를 호출하여 언론사 정보를 얻을 수 있습니다.

이렇게하면 Flutter 앱에서 사용자가 선택한 언론사 정보를 shared_preferences를 사용하여 저장하고 불러올 수 있습니다.