[flutter] 플러터에서 훅(hook)을 활용하여 앱 설정 저장하기
플러터는 페이스북에서 만든 오픈 소스 프레임워크로, 빠르게 아름다운 네이티브 앱을 만들 수 있습니다. 이번에는 플러터에서 훅을 활용하여 앱의 설정을 저장하고 관리하는 방법에 대해 알아보겠습니다.
플러터 훅 소개
훅(Hook)은 플러터의 상태 관리를 쉽게 해주는 개념입니다. 훅을 사용하면 상태를 저장하고, 변경하고, 읽어올 때 번거로운 작업을 효율적으로 처리할 수 있습니다.
앱 설정 저장을 위한 훅 활용
플러터에서 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: SettingsPage(),
);
}
}
class SettingsPage extends StatefulWidget {
@override
_SettingsPageState createState() => _SettingsPageState();
}
class _SettingsPageState extends State<SettingsPage> {
final _controller = TextEditingController();
String _name = '';
@override
void initState() {
super.initState();
_loadName();
}
_loadName() async {
final prefs = await SharedPreferences.getInstance();
setState(() {
_name = prefs.getString('name') ?? '';
});
}
_saveName(String value) async {
final prefs = await SharedPreferences.getInstance();
prefs.setString('name', value);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Settings'),
),
body: Padding(
padding: EdgeInsets.all(10.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
TextField(
controller: _controller,
decoration: InputDecoration(labelText: 'Enter your name'),
),
RaisedButton(
child: Text('Save'),
onPressed: () {
_saveName(_controller.text);
_loadName();
},
),
Text('Hello, $_name'),
],
),
),
);
}
}
위 코드에서는 사용자의 이름을 저장하고 로드하는 간단한 설정 페이지를 구현한 예제입니다. shared_preferences를 활용하여 사용자의 이름을 저장하고, 훅을 사용하여 상태를 관리하고 있습니다.
마무리
플러터의 훅을 활용하여 앱 설정을 저장하고 관리하는 방법을 살펴보았습니다. 이를 통해 플러터 앱에서 설정 관련 기능을 효율적으로 구현할 수 있습니다. shared_preferences와 플러터 훅을 함께 활용하면 앱의 설정 기능을 보다 쉽게 구현할 수 있습니다.