2026年2月25日水曜日

[Android]RoomとKPSとKotlinのバージョン(2026/02)

AndroidのRoomは、SQLiteを簡単に扱えて、Flowで値を取得できます。
RoomのFlowを使った制御の何がよいかというと、データベースを更新すると、勝手にデータをリフレッシュしてくれるんですよね。

最初にRoomを使ったときは、「え?なんでDBを更新すると、画面が勝手に更新されるの?」というのが理解できませんでした。 そうなんです。仕組みを理解していないと、これが分からないんですよね。

ざっくり言うと、DAOにFlowで値を返す関数がある場合、データを更新すると自動でFlowに新しいデータが流れてきて自動的にFlowデータを取り込む。
データを取り込むとFlow(State)を参照しているUIが勝手に更新される。そんな感じ。

ただ、Roomはクセが強い。どこがクセ強かというと、KSPとKotlinのバージョンの組み合わせに依存関係があって、例えばKotlinの版を上げたいなら、合わせてKSPとRoomもいい感じのバージョンにそろえる必要があるのです。 ということで、今日ちょっと調べてみると、最新環境ではこんな感じで合わせられそうだな、ということが分かったので、備忘としてメモ。


■libs.versions.toml抜粋(Kotlinが2.3.10)
[versions]
agp = "9.0.1"
coreKtx = "1.17.0"
junit = "4.13.2"
junitVersion = "1.3.0"
espressoCore = "3.7.0"
lifecycleRuntimeKtx = "2.10.0"
activityCompose = "1.12.4"
kotlin = "2.3.10" // ★2026/02時点では最新版
composeBom = "2026.02.00"
■build.gradle.kts(:app)
plugins {
  alias(libs.plugins.android.application)
  alias(libs.plugins.kotlin.compose)
  id("com.google.devtools.ksp") version "2.3.5" // ★Kotlin 2系に対応したKSP 2026/02時点では最新版

}

・・・省略・・・

dependencies {
  implementation("androidx.room:room-runtime:2.8.4") // ★Room関連 2026/02時点では最新版
  implementation("androidx.room:room-ktx:2.8.4")
  ksp("androidx.room:room-compiler:2.8.4") // ★KSP 2026/02時点では最新版


・・・
}
依存関係に負けてRoomをあきらめた人や、これからRoomちょっと使ってみようかな。という人参考までに。 最新版は↓からたどれます。
Room(部屋って訳されるのが笑える)
KSP

2026年2月10日火曜日

[バイク]レッグウォーマー

仕事中、足元が冷えるんだよねー。冬は。という方にお勧めしたいのが、コレ。おたふく手袋 の冬用レッグウォーマー

スーツなど、もこもこしたタイプのレッグウォーマーをつけるのがむつかしい服装で働く人にお勧め。しかも安い。股引とかタイツ的なものを使うならこっちのほうがイイかも。っていうくらいイイ。足首やふくらはぎがあったかいと、意外と全体的にあったかくなる。

また、この製品「発熱・防風・保温」をうたっているので、バイクに乗った時どうなんだろう?と試してみるとこれが効果抜群。イイ買い物したな、と思います。

ただ残念なのが、歩いているとズルズルちょっとずつ下がってくる。が、もう手放せないです。

[バイク]後付けグリップヒーター

冬のバイク。楽しいんだけど、乗るまでのハードルが高いんだよねー。

ということで、その辺を緩和する方法として “あったかくする” がある。体は着込めばイイんだけど、手先と足など末端が寒くて死にそうに。ということで、緩和案としてグリップヒーターを買ってみました。

製品は何だっけ?買ったはいいけど一年くらいかしてたんだよね。買ったのはコレ。 

グリップ巻き付け式のUSB電源のタイプのもの。モバイルバッテリーでも行けるタイプ。


使った感想としては、いまいち。個人的な感想。素手で触ると結構あったかいんだけど、グローブ越しだと出力がちょっと足りていない。機能はしているが効果が大きくはない感じ。
ないよりは全然イイ。まぁ冷風を当て続けているので仕方かないのかも。


[バイク]スマートモニタ。意外と悪くない

今までバイク用のナビとして Pixel Watch(+Pixel 9 Pro)を使っていたんだけど、タイムラグがあるのと画面が見づらいせいで、曲がるポイントをよく見逃していました。

まぁあれですね。ないよりは全然イイ。そんな感じ。

しかし、ソロの時はいいのだけど、仲間内でコレをやっちゃうとさすがに迷惑。ということで、スマートモニタを買ってみました。

いや、最初はスマホフォルダを買おうかなと Amazon を物色していたんだけど、そこでスマートモニタを発見。しかも9,000円くらいのタイムセール。これは買うしかない。と思い勢いでMG100を購入。

この製品は USB 電源でも稼働するタイプの機材なので、ハンドルにつけた USB 電源でそのまま動きます。さらに、モバイルバッテリーでも動作するらしい。

で、今日使ってみました。

感覚的に言うとすごくイイ。スマートウォッチと違って反応が早い。あと、5インチと小さいので目立たない。
自宅で初動確認やペアリングしていた時は、正直画面解像度が低いなと思ったんだけど、実際バイクに乗せて動かしてみると、「いや、運転中はこれくらいで十分」と納得。
製品のレビューを見ると、ねじが緩む的なことが書いてあるけど、今のところ大丈夫そう。

そんなに多くの製品を知っているわけじゃないけど、しっかりしてるんじゃないかなーと思う。


ということで、高価なスマフォフォルダ買おうとしている人は一考の価値があると思う。

2026年2月4日水曜日

[Other]Google Books APIsを使う

Google Books APIsは、基本APIキーなしでも使えるんですが、最近キーなしのアクセスが多発気味なのか、すぐに制限がかかっちゃいます。 ということで、APIキーの作り方と、APIの有効化についてメモを残しておきます。 APIキーを取った後は、次のような感じで、アクセスすればOKということで、GETのパラメータにつける簡単な方法を紹介。

書式はこんな感じ
 https://www.googleapis.com/books/v1/volumes?q=inauthor:%E8%8A%A5%E5%B7%9D%E9%BE%8D%E4%B9%8B%E4%BB%8B&key=AIza・・・・
これは、著者が芥川龍之介の書籍を検索する例。key=の後ろに取得したAPIキーをつけることで、制限がかかることがほぼなくなります。

登録手順は次の通り。

まず、「https://console.cloud.google.com/」にアクセス

■プロジェクトの作成
初回のアクセスの場合、利用の同意を求められれます。ということで、チェックをつけて「同意して継続をクリック」

















続けて、プロジェクトの作成。
デフォルトで「My First Project」というプロジェクトができている感じがありますが、なければ、右上の「新しいプロジェクト」をクリックし新規プロジェクトを作成する。





■APIの有効化

Google Books APIsをアクティブ?にします。




「プロジェクト選択」をクリックし、プロジェクトを選択した後、メニュー(3本線)ボタンをクリックする。














有効なAPIとサービスをクリックする。










検索バーに「google books」あたりまで入れると、一番上に、    Books APIが出てくるのでこれをクリック。




有効にするボタンをクリックする。










■APIキーの作成
メニューから、「認証情報」を選択。
    

















「+認証情報を作成」をクリックすると、何の認証情報を作るかを選択できる。
ここで、「APIキー」をクリック。








特に制限することもないので、デフォルトのまま「作成」ボタンを押す。







APIキーの生成が終わると、認証情報の一覧に戻る。






■APIキーの確認

認証情報一覧の画面で、「鍵を表示します」をクリックする。
    
ポップアップが表示されてキーの情報表示される。
この「自分のAPIキー」をコピーし、URLの最後に

「&key=Al.....」をくっつければOK。