GitHub / monochromegane / BundleSaver
- BundleSaverから "StateSaver" へ
- StateSaverの使い方
1. BundleSaverから "StateSaver" へ
前バージョンのBundleSaverの考え方、利用手順はこちらをご覧ください。
振る舞いのよいAndroidアプリのために。BundleSaver。
前バージョンでは、状態の保存先として、Bundleを対象としていました。
しかし、Bundleへ保存された状態は、アプリが生存する間しか保存されません。
アプリ終了後も状態を利用するには、何らかの手段を用いて永続化する必要があります。
今回、BundleSaverは「状態保存」の責務を果たすため、状態の永続化もサポートするように機能拡張を行いました。
また、それに伴い、プロダクト名をBundleSaverから "StateSaver" へ変更します。
なお、永続化の手法としては、Preferenceを採用しました。
2. StateSaverの使い方
BundleSaverからStateSaverになるに伴い、利用するメソッドやアノテーションが変更になっていますが、基本的な利用手順は今までと同様です。
(念のため旧メソッド関連も非推奨メソッドとして残しています。)
変数の宣言時に、アノテーションで状態保存の対象であることを記載してください。
このとき、保存先がBundleかPreferenceかで指定するアノテーションを切り替えます。
なお、両方に保存したい場合、アノテーションを2つとも指定すればよいです。
対象となる型は、Bundle、Preferenceに格納できるもの + αです。
プリミティブ型、ラッパーオブジェクト、Bundle, Parcelable, Serializable などが格納できます。
詳しくはGitHub上のREADMEをご覧ください。
対象となるインスタンス変数にアノテーションをつけるだけで、保存/復元処理はStateSaverを呼ぶだけなので、使いやすくなるんじゃないかと思います。
また永続化対応によって簡易な設定等の保存/復元にも対応したので、実装がシンプルになるメリットもあると思います。
状態の保存/復元は地味ですが、ユーザ側にとって振る舞いのよいアプリケーションをつくるのに重要な処理なので、ぜひ使ってみてください。
-------------------------
ここはこうした方がよいよとかご指摘ありましたら、教えてもらえれば幸いです。
GitHubのPullRequestもお待ちしております。
ではでは。
0 件のコメント:
コメントを投稿