[flutter] shared_preferences 를 사용하여 사용자가 선택한 글꼴을 저장하는 방법은 무엇인가요?

Flutter에서 사용자가 선택한 글꼴을 저장하기 위해 shared_preferences 패키지를 사용할 수 있습니다. shared_preferences는 Flutter 앱에서 간단한 데이터를 영구적으로 저장하기 위한 편리한 방법을 제공하는 패키지입니다.

shared_preferences 패키지 추가하기

먼저, pubspec.yaml 파일에 shared_preferences 패키지를 추가해야 합니다. 다음과 같이 dependencies 섹션에 아래 코드를 추가하세요:

dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^2.0.5

그리고 나서 터미널에서 다음 명령어를 사용하여 패키지를 가져옵니다:

flutter pub get

사용자가 선택한 글꼴 저장하기

다음은 사용자가 선택한 글꼴을 shared_preferences를 사용하여 저장하는 예제 코드입니다:

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

// 사용자가 선택한 글꼴을 저장하는 함수
Future<void> saveSelectedFont(String font) async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  prefs.setString('selectedFont', font);
}

// 저장된 사용자의 선택된 글꼴 가져오기
Future<String> getSelectedFont() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  String selectedFont = prefs.getString('selectedFont') ?? 'Default Font';
  return selectedFont;
}

class FontSelectionPage extends StatefulWidget {
  @override
  _FontSelectionPageState createState() => _FontSelectionPageState();
}

class _FontSelectionPageState extends State<FontSelectionPage> {
  // 선택된 글꼴 변수
  String selectedFont = '';

  @override
  void initState() {
    super.initState();
    // 초기에 저장된 사용자 선택 글꼴 가져오기
    getSelectedFont().then((font) {
      setState(() {
        selectedFont = font;
      });
    });
  }

  // 글꼴 선택이 변경되었을 때 실행되는 함수
  void handleFontSelection(String font) {
    setState(() {
      selectedFont = font;
    });
    // 사용자가 선택한 글꼴 저장
    saveSelectedFont(font);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Font Selection'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text(
              'Current Font: $selectedFont',
              style: TextStyle(fontSize: 24),
            ),
            SizedBox(height: 20),
            RaisedButton(
              onPressed: () => handleFontSelection('Arial'),
              child: Text('Arial'),
            ),
            RaisedButton(
              onPressed: () => handleFontSelection('Helvetica'),
              child: Text('Helvetica'),
            ),
            RaisedButton(
              onPressed: () => handleFontSelection('Times New Roman'),
              child: Text('Times New Roman'),
            ),
          ],
        ),
      ),
    );
  }
}

위의 예제 코드에서, saveSelectedFont 함수는 사용자가 선택한 글꼴을 shared_preferences에 저장합니다. getSelectedFont 함수는 저장된 사용자 선택 글꼴을 가져옵니다. _FontSelectionPageState 클래스는 사용자가 글꼴을 선택하고 저장하는 데 사용되는 StatefulWidget입니다.

이제, FontSelectionPage 위젯을 앱의 원하는 위치에서 사용하여 사용자가 글꼴을 선택하고 저장할 수 있습니다.

결론

Flutter에서 shared_preferences 패키지를 사용하여 사용자가 선택한 글꼴을 저장하는 방법에 대해 알아보았습니다. 이를 통해 앱을 다시 실행하거나 재시작하더라도 사용자의 글꼴 선택이 유지될 수 있습니다.