この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
Xamarin製アプリで設定値を保存するとき、下記のライブラリにお世話になっています。
ふと設定値保存の機能をXamarin.Essentialsに移行できる事に気づいたので、実際に移行してみました。 設定値も引き継がれます。
Xamarin.EssentialsのPreferencesに移行する
既存プロジェクトにXamarin.Essentialsを導入(更新)する
Xamarin.Essentialsを導入(or 更新)します。
設定箇所のコードを修正する
変更前のコード
SettingsPluginを使用しているコードです。
using System.Dynamic;
using Plugin.Settings;
using Plugin.Settings.Abstractions;
namespace Sample.Models
{
public static class Settings
{
private static ISettings AppSettings => CrossSettings.Current;
public static bool FooEnable
{
get => AppSettings.GetValueOrDefault(nameof(FooEnable), false);
set => AppSettings.AddOrUpdateValue(nameof(FooEnable), value);
}
public static string BarText
{
get => AppSettings.GetValueOrDefault(nameof(BarText), "xxxx");
set => AppSettings.AddOrUpdateValue(nameof(BarText), value);
}
}
}
変更後のコード
Xamarin.Essentialsを使用するように変更したコードです。
using Xamarin.Essentials;
namespace Sample.Models
{
public static class Settings
{
public static bool FooEnable
{
get => Preferences.Get(nameof(FooEnable), false);
set => Preferences.Set(nameof(FooEnable), value);
}
public static string BarText
{
get => Preferences.Get(nameof(BarText), "xxxx");
set => Preferences.Set(nameof(BarText), value);
}
}
}
上記のコードの場合、単純な置換作業でOKでした。
変更前 | 変更後 |
---|---|
AppSettings | Preferences |
GetValueOrDefault | Get |
AddOrUpdateValue | Set |
使用箇所は変更不要
上記コードを使用している部分(設定を参照する・変更する)は、変更不要です。
# Set sample
Settings.FooEnable = true;
# Get sample
return Settings.FooEnable;
SettingsPluginを削除
最後に今まで使っていたSettingsPluginを削除します。ありがとうございました!
さいごに
思っていたよりもすんなりと移行できて良かったです。