Kotlin

Androidの強制アップデートでよく使うアプリバージョン比較方法

現在のバージョンと強制アップデートのバージョンを比較して、処理をするということはよくあります。 重大なバグがあった場合に「このバージョン以上は〜する」みたいなときに使うあれです。 おまけ こんなけバージョン比較方法を紹介しといてあれなんですが…

Kotlin 正規表現はStringの拡張関数でカプセル化しておく

はじめに 今回は、正規表現に関するおすすめ対処法です。 正規表現で文字列を判定する場合に、Utility・Helperなどのクラスを作成するのはよくみられます。 間違いではないので、別に悪いことではないのですが、Utility・Helperなどのクラスは役割がどの範囲…

Android ImageViewのTintColorを変更する

Xmlから変更 android:tint="@color/hoge" コードから変更 ImageViewのTintColorをコードから変更したい場合バージョンごとに差異があるのでメモです。 API21以上向けの場合は以下のようにしておけば問題なしです。 /** * 画像のTintColorを設定 * * @param c…

Ktlintのフォーマットをビルド時に実行する

Ktlintのフォーマットをビルド時に実行するように設定してみた

Kotlinのコーディング規約

はじめに 今回は、Kotlinのコーディング規約作成しなきゃと追われている人たちに贈ります。 Kotlin公式コーディングスタイル コーディング規約はJetBrainsがご丁寧に書いてくれています。 プロジェクトごとに規約考えるのではなく、素直にしたがっておくのが…

Android RecyclerView で空の状態のViewを表示するAdapterDataObserverを作成

はじめに 今回は、RecyclerViewが空の状態に別のViewを表示する方法をご紹介します。 ListViewのEmptyViewみたいなものを想像していただければいいと思います。 ゴールとしては、RecyclerViewに setEmptyView(View) を呼び出すだけで設定できるまでを目指し…

Android Viewの表示切り替えをスッキリさせる

はじめに Android ではご存知の通り、Viewの表示切り替えは ViewのVisibility を切り替えてあげれば変更することができます。 Visibility 状態 View.VISIBLE 表示(デフォルト) View.INVISIBLE 不可視化(見えなくなるが、サイズは維持される) View.GONE …

Android ViewからActivityを取得する

はじめに 今回はViewからActivityを取得する方法を紹介します。 ViewからActivityを取得する必要があるケースというのはあまり出会うことはないかもしれませんが、、 ついこの間、必要になったことがあったのでこちらに残しておこうかと思います。 方法 View…

Android Jetpack Navigation コピペで使える画面遷移アニメーション

はじめに アニメーションファイルを作ろうとして毎回忘れてしまうため、備忘録として残しておきます。 また、合わせてAndroid JetPack Navigationでの設定サンプルも記載しておきます。アニメーションファイル自体はAndroid JetPack Navigationでなくても使…

Firebase Cloud Firestore の購読処理を RxJava / RxKotlin に変換する Extension

はじめに Firebase の Cloud Firestore の購読処理を DocumentSnapshot または QuerySnapshot をRxに変換する方法を紹介します。 使いやすいように改善 購読処理には、 addSnapshotListener() のリスナー使用します。 ポイントとしては以下の2つです。 エラ…

Android 画像ライブラリ Glide 小ネタ集

はじめに Androidの画像キャッシュライブラリのGlideの小ネタ集を備忘録として記録します。 github.com オリジナルサイズ Glide.with(context) .load(imageUrl) .apply(RequestOptions().override(Target.SIZE_ORIGINAL)) .into(imageView) 丸くする Glide.w…

Android で UUID を取得する方法

はじめに AndroidでUUID(Universally Unique Identifier)を取得する方法を紹介します。 ログインしていないユーザーの識別にUUIDを使用するケースがよくありますよね。 ユニークなIDを取得するにはさまざまな方法があったりしますが、結局どれ使えばいいの…

CollapsingToolbarLayout の状態変更を使いやすくする

はじめに 今回は、CollapsingToolbarLayout を使うときに便利なリスナーを紹介します。 CollapsingToolbarLayoutの基本的な実装については説明しないので、xmlの組み方については公式ページでも見てください。 material.io AppBarLayoutをカスタム Collapsin…

Android EditText の TextWatcher をラムダで簡略化

はじめに 今回は、Androidのリスナーをラムダを使用して簡略化する方法を紹介します。 例として、EditTextのTextWatcherをサンプルとして扱ってみます。 TextWatcherとは、EditTextが入力された文字を通知するリスナーのことです。 以下のように、入力された…

Cloud Firestore で プロパティ名を指定する方法

はじめに 今回はFirestoreの保存するプロパティ名を指定する方法を紹介します。 オブジェクトへの変換方法については以下の記事も参考にしてみてください。 qoopmk.hatenablog.jp 解決 @PropatyName を使用して保存されるプロパティ名を指定することができま…

Android のスクリーンサイズ / ナビゲーションバーサイズ を取得

はじめに 今回は、Androidのさまざまな画面サイズを取得するサンプルコードを紹介します。 取得方法 青色の線が 画面サイズ(screenSize) 黄色の線が アプリが表示されている画面サイズ(applicationScreenSize) ピンク色の線が ナビゲーションバーサイズ…

Android Studio で 使われていないリソースを判別するPlugin

はじめに Android Studioは使われていないクラスや関数はみやすくていいのですが、使われていないリソースは表示されないのでわかりにくかったりします。 そこで、いつも導入しているのが、 「Android Resource Usage Count」というプラグインです。 リソー…

Firebase Cloud Firestore + RxJava / RxKotlin のオブジェクト変換

はじめに Firebase の Cloud Firestore で DocumentSnapshot または QuerySnapshot から モデルに変換する方法を紹介します。 解決策 Firestoreが用意してくれている toObject 関数を使えば終わりです。 firebase.google.com FirebaseFirestore.getInstance(…

Android Studio で KDoc を書きやすくする Plugin

はじめに みなさんは、Android StudioでKotlinをコーディングしているときに、 もっとドキュメントが書きやすくなればいいと思ったことはないでしょうか。 私はJavaDocに慣れてしまっていたので、 /** を入力し、改行したらドキュメントが自動生成されるもの…

Firebase リスナーを RxJava / RxKotlin に変換する Extension集

今回はみんな大好きFirebaseを使用する際に、 簡単にRxに変換する方法をご紹介したいと思います。 Firebaseといえど、認証系のAuth、データベースのFirestore、ストレージのStorageなど様々な機能があります。 そのすべてのリスナーをRxで流すような実装はよ…

Cloud Firestore で ServerTimestamp が null になる問題

AndroidでCloud Firestoreを使っていて、 データをCollectionに追加する際に、ServerTimestampを使って日時を設定していました。 以下のようなコードでもFirestoreには問題なく作成日時(createdAt)は保存されます。 /** * メッセージ * * @property id メ…