2019.09.20みんなRoom使ってますか?Room。自分は最近まで使ったことなかったんだけど、ここ2~3案件Roomを使ってるアプリ案件に配属されて触れてました。Roomの改修とかはしたことない状態で、なんとなく自分のアプリに1から導入してみようって感じで入れてみた。そもそもRoomってなんぞや?って話なんだけど、SQLiteを良い感じにラップしてくれるライブラリって感じで思ってくれれば良いと思う。自分はそう思ってるwRoomは単純に考えると以下のクラスを作っておけば良い・Databaseクラス・Entityクラス・Daoクラスお手軽!作る順番はEntity→Dao→Databaseが良いかなって感じた。この順番なら基本的にビルドエラーは起こらない、、、はず!ってことで諸々、どんなクラスを作っていくのか書いていくよ。"androidx.room:room-ktx:$room_version"Entityクラスを作成するEntityクラスはDBのテーブルに該当クラスで、フィールド変数はカラムに該当する。System.currentTimeMillis())テーブル名とカラムを定義する。PrimaryKeyが1つで良いのであれば、@primaryKeyを変数の上につければ良い。今回は複数のPrimaryKeyを付けたかったのでクラスの上にアノテーションを付けている。UserとかList<String>ってSQLiteの型に無いけど大丈夫?大丈夫!・・・・のようにするSQLiteに無い型に対応するSQLiteってざっくりいうとINTEGER,TEXT,REAL,BLOBの4つの型しか無い。ことで、任意の型をSQLiteで認識できる型に変換しちゃおうぜ!ってことがRoomではできる。以下のようなコンバータークラスを作成する。StringにしちゃってTEXTで認識してもらうようにしようぜ!って感じ。UserはGson使ってJsonで保存。Listはカンマ区切りにして保存。取得するときは逆変換。個人アプリではDateに関しては今の所大丈夫そうだけど、、、。これ書き終わったら確認してみよう(いましろやwDaoクラスを作成するDBに直接アクセスするクラスですね。ここにSQL分を書いたりします。deleteAll()}まぁ、欲しいメソッド作って、SQLを書くだけですwDatabaseクラスを作成するEntity,Converter,Daoとかを書き書きします。}}アノテーションで使うEntity,Converterを設定すればOK!使い方ここまでだと使い方がよくわからんってことになると思うから一応書いておく。個人アプリの場合はApplicationクラスにDBのインスタンスを持たせています。items.postValue(list)}※DB操作はUIスレッドで触ろうとすると、非同期で触れや!ってRoomが例外飛ばしてくるので注意。最後に自分でCreate文とか書かなくて良いし、順番さえ覚えればかんたんに導入できる!って感じかな。マイグレーションで若干ハマるけど、それは別のお話で、、、。RetrofitのGetリクエストで任意の複数のクエリーを設定するはい。自分が勉強不足でよくわかってなかっただけなんですけどね、、、。感じに思って調べて実装してみたやつ。FusedLocationProviderClientで位置情報取ろうとしたら落ちた話ちょっと厄介だった。FusedLocationProviderClientで位置情報を取ろうとしたら以下の理由で落ちた。超便利じゃんか!って思いました。Coroutine(コルーチン)でAPI通信を行うはい。なにげにこの記事は悪手で、、、。この記事のためにAPI基底クラスで色々融通効かせてみたんだけど、結果あまり必要なかったっていう。2.6...Android開発ネタ[Android]既存アプリをAndroidX移行対応したらRecyclerViewでエラー出た最近作った個人アプリ。AndroidXにしてなかったのでAndroidXにしてみたらエラーが出たって話。BLEに触れたら辛かった話。BLEに触れたら辛かった話。views2019.07.082021.03.02カテゴリーAndroid開発ネタ61BLE2Coroutine2DataBinding1FaceBook1Gilde1GoogleAPI1LiveData3Retrofit7Room2Rx3Twitter2View22ViewModel1WiFi1プラグイン2ライブラリ6画面遷移4Flutter3Floor1provider1ブログ17日常8運営報告9ラーメン10お花茶屋1押上4曳舟2渋谷3青砥1ランチ19お花茶屋2つくば5亀有8押上3曳舟1スポンサーリンク。