일단은 아묻따 코드
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:shared_preferences/shared_preferences.dart';
part 'shared_preference.g.dart';
(keepAlive: true)
class SharedPref extends _$SharedPref {
SharedPreferencesService build() {
return SharedPreferencesService();
}
}
class SharedPreferencesService {
late SharedPreferences _prefs;
SharedPreferencesService() {
_init();
}
Future<void> _init() async {
_prefs = await SharedPreferences.getInstance();
}
Future<void> setString(String key, String value) async {
await _prefs.setString(key, value);
}
String getString(String key) {
return _prefs.getString(key) ?? '';
}
}
기존에 RiverPod으로 만들었던 코드를 riverPod_annotation을 사용함에 따라 변경하였다.
안드로이드 스튜디오를 할 때 SharedPref를 사용하기 위해선 context를 계속 받아와 매번의 activity마다 초기화 하여 사용했는데 그 때마다 생성되는 새로운 객체 비효율적이라 생각 돼 모듈화가 필요함을 느껴 해당형태로 구현