こんにちは!ぐちです。
めちゃくちゃ久しぶりに仕事でコーディングしました。めちゃくちゃ書きました。AndroidとiOSのアプリを同時に作りました。疲れました。笑
で、今回は両OSで簡単に一時データを保存する際に使う構文をご紹介したいと思います。まずはAndroidから。
一時データとは
永続化したいデータはデータベースを使うかと思いますが、ログイン済みかどうかを判定したいときなどを一時的に情報を保存したい場合があると思います。そういうときに使える構文をご紹介しますね。
Android
インスタンスの取得
AndroidではSharedPreferences
というものを使うことでデバイス内に情報を保存するAPIを使うことができるようになります。
Context#getSharedPreferences()
メソッドを使います。Activityクラス内であれば、Contextが有効なので、下記の通りに使うことができます。
SharedPreferences pref = getSharedPreferences("preference_data", Context.MODE_PRIVATE);
第一引数は保存領域に付与する名称です。第二引数は下記の2種類のモードを指定します。
- Context.MODE_PRIVATE
- Context.MODE_MULTI_PROCESS
見たままの意味ですがContext.MODE_PRIVATE
は、このアプリ内からのみアクセス可能なデータの生成を行い、ContextMODE_MULTI_PROCESS
は複数のプロセスが作ったデータ(許容しているアプリ)に対してアクセスが可能なデータの生成を行います。
保存
続いてデータの保存です。
SharedPreferences.Editor editor = pref.edit(); editor.putInt("Key", 1); editor.apply();
- SharedPreferencesのインスタンスからエディタオブジェクトを取得します。
- エディタオブジェクトに用意されている
putInt()
メソッドを使い、数値データを保存します。保存の際にKey
を指定しています。この値を取り出す際のキーになります。見たままを裏切らない名称でして、putString()
やputBoolean()
などがあります。 apply()
メソッドを呼び保存を反映します。apply()
メソッドと同様の処理を行うcommit()
メソッドもあります。違いはapply()
が非同期で保存を反映するのに対し、commit()
は同期処理です。
取得
続いて、保存したデータの取得(呼び出し)です。
int value = pref.getInt("Key", 0);
保存する際に指定したキーを第一引数に指定し値を取得します。第二引数は値が保存されていなかった場合のデフォルト値を指定します。
保存と同様にgetString()
やgetBoolean()
などが用意されています。
削除
最後に、保存したデータの削除です。
SharedPreferences.Editor editor = pref.edit(); editor.remove("Key"); editor.apply();
エディタオブジェクトのremove()
メソッドに削除したいデータのキーを指定することで削除できます。
管理クラスを作ったり、I/Fを統一させたり色々とやることはありますが、とにかくさくっと保存するのであれば、上記のコードだけで実現することができます。
では今回はこの辺で。