shared preferences anti pattern
TRANSCRIPT
About MeShinobu Okano ( 岡野 忍 )
SERAKU Co.,Ltd.
@operandoOS
Android / Ruby on Rails
Dart / Firefox OS / Play Framework
Twenty two years old
http://hack-it-iron.hatenablog.com/
SharedPreferencesAnti Pattern
• getSharedPreferencesが色んなところに書いてある
• 何でもかんでも一つのPreferenceに保存する
• セキュアじゃないMODE使ってる
• Key名がベタ書き→定数化してない
• グローバルな変数格納用に使用される
などなど・・・
SharedPreferencesAnti Pattern
• getSharedPreferencesが色んなところに書いてある
• 何でもかんでも一つのPreferenceに保存する
• セキュアじゃないMODE使ってる
• Key名がベタ書き→定数化してない
• グローバルな変数格納用に使用される
などなど・・・
SharedPreferencesAnti Pattern
• getSharedPreferencesが色んなところに書いてある
• 何でもかんでも一つのPreferenceに保存する
• セキュアじゃないMODE使ってる
• Key名がベタ書き→定数化してない
• グローバルな変数格納用に使用される
などなど・・・
SharedPreferencesAnti Pattern
• getSharedPreferencesが色んなところに書いてある
• 何でもかんでも一つのPreferenceに保存する
• セキュアじゃないMODE使ってる
• Key名がベタ書き→定数化してない
• グローバルな変数格納用に使用される
などなど・・・
How to use- Initialize -
public class MyApplication extends Application {
@Overridepublic void onCreate() {
super.onCreate();Garum.initialize(getApplicationContext());
}}
How to use- Model -
@Pref(name = "app_status")public class AppStatus extends PrefModel {
@PrefKeypublic String appName;
@PrefKeypublic int startupCount;
@PrefKeypublic boolean showNotification;
}
How to use- Save -
public void onSave(View v) {AppStatus appStatus = new AppStatus();appStatus.appName = "Garum";appStatus.startupCount = 10;appStatus.showNotification = true;appStatus.save();
}
How to use- Save -
<?xml version='1.0' encoding='utf-8' standalone='yes' ?><map>
<string name="appName">Garum</string><int name="startupCount" value="10" /><boolean name="showNotification" value="true" />
</map>
/data/data/<package name>/shared_prefs/app_status.xml