Koreference 1.0.0を昨日jCenterにリリースしました。
今回のバージョンでKotlin1.0.0-betaに対応しています。
簡単にKoreferenceの紹介を。
これはなに?
KotlinでAndroidのSharedPreferencesをPropertyとして扱えるライブラリーです。
Kotlin1.0.0-beta対応。
資料はこちら
www.slideshare.net
使い方
READMEを見てね
仕組み
KoreferenceProperty
ReadWriteProperty(Delegated propertyを使うための基底クラス)の子クラス。
こいつはPreferenceとValueConverterを持つ抽象クラスで、それぞれ実装を持つインターフェースをmix-inすることでSharedPreferencesの操作と、SharedPreferences値/Model値の相互変換を実現している。
Preference
SharedPreferencesの操作を行うインターフェース。
各タイプごとにSharedPreferencesの必要なメソッドを呼び出してset/getするだけ。
このインターフェースは全てKoreference内で定義されているので、実装を書くことはなく用意されているものをmix-inすることになると思う。
ValueConverter
SharedPreferences値とModel値(アプリ側で扱う値)を変換するためのインターフェース。
SharedPreferences -> Model、Model -> SharedPreferencesそれぞれのメソッドが定義されているので、必要に応じて実装する感じ。
KoreferenceではRawValueConverterとGsonConverter(koreference-gson)が用意されている。
独自の変換をしたい場合はこのインターフェースの子インターフェースを作ってやるとよい。
KoreferenceModel
SharedPreferencesを継承した抽象クラス。
Koreference本体の機能を利用するだけなら、SharedPreferencesの実装クラスを作って、SharedPreferencesをDelegateしてやって、その実装クラスにプロパティーを生やせばよいが、一括セットの機能を利用したい、SharedPreferencesのインスタンス取得をよしなにやりたい場合はこのクラスを継承するのが必須。
サンプル
テストコード見てね、そのうちアプリ書いて公開するかも?