Android application development 第16章:SharedPreferences

🗂️ SharedPreferencesとは?

アプリ内で簡単なデータを永続的に保存する仕組みです。
たとえば:

  • ログイン状態(true/false)
  • ユーザー名や言語設定
  • 最後に開いた画面やスコア など

のような 「ちょっとした設定」や「小さなデータ」 を保存するのに向いています。

SQLiteやファイル保存は重すぎる。でも一時的なBundleIntentでは足りないときに便利!


🧠 Javaの Map と似た使い心地

SharedPreferences は「キーと値のペア」でデータを保存・取得します。
Javaでいうと Map<String, Object> のようなイメージです。


🛠️ 実装方法(保存と読み取り)

■ データを保存(書き込み)

SharedPreferences prefs = getSharedPreferences("MyPrefs", MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();

editor.putString("username", "taro");
editor.putInt("score", 80);
editor.putBoolean("isLoggedIn", true);

// 必ず commit() または apply() を呼ぶ!
editor.apply(); // 非同期(推奨)

■ データを読み取り

SharedPreferences prefs = getSharedPreferences("MyPrefs", MODE_PRIVATE);

String username = prefs.getString("username", "guest");
int score = prefs.getInt("score", 0);
boolean isLoggedIn = prefs.getBoolean("isLoggedIn", false);

第二引数は「デフォルト値」。キーが存在しないときに使われます。


📦 保存される場所

  • 保存された値は、アプリが削除されるまで残り続きます。
  • データは内部ストレージにXML形式で保存されます(セキュリティ的にはやや注意)。

📍 MODE_PRIVATEって何?

MODE_PRIVATE は他のアプリからアクセスできない「このアプリ専用」保存領域という意味です。


🔁 よく使うシーンの例

シーン使い方
最初のログインチェックisFirstLaunch = prefs.getBoolean("first", true)
ユーザー名を記憶putString("username", "...")
設定画面でトグル状態を保存putBoolean("darkMode", true)
最終ログイン日時などの記録putLong("lastLogin", System.currentTimeMillis())

✅ まとめ

特徴内容
保存形式キーと値のペア(文字列・数値・ブールなど)
永続性アプリ終了後も残る(アプリ削除で消える)
保存方法Editor を使って apply()commit()
用途設定値・状態の保存など、軽量な用途に最適

🧪 補足知識

  • apply() は非同期、commit() は同期的に書き込みます(apply()の方がUIスレッドをブロックしません)
  • 設定ファイルはアプリ単位で複数持てます(ファイル名で分けられる)

mh

Related Posts

Android application development 第33章:実践ミニアプリ:天気情報アプリ

Android application development 第32章:実践ミニアプリ:シンプルなToDoリスト

You Missed

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第6章:Cloud Shellの活用:GCPを「どこからでも手軽に操作できる秘密基地」

  • 投稿者 mh
  • 6月 6, 2025
  • 10 views

Kubernetes Learning 第32章:Helmの基本操作(install, upgrade, rollback)~マニフェスト管理をもっと効率よく、自動化するために~

  • 投稿者 mh
  • 6月 5, 2025
  • 12 views

現場で使えるChrome DevTools実践ガイド 第11章:アクセシビリティの確認

  • 投稿者 mh
  • 6月 5, 2025
  • 16 views

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第5章:Cloud SDKとgcloudコマンド:GCPを「キーボードから操る」魔法のツール

  • 投稿者 mh
  • 6月 4, 2025
  • 25 views

Kubernetes Learning 第31章:コンテナのセキュリティ対策(PodSecurityなど)~Kubernetes環境を守るために最低限知っておきたいこと~

  • 投稿者 mh
  • 6月 4, 2025
  • 27 views

現場で使えるChrome DevTools実践ガイド 第10章:Device Modeでのレスポンシブ検証

  • 投稿者 mh
  • 6月 4, 2025
  • 29 views