databindingを新しくしたらvisibility周りの挙動が変わっていた

RxPropertyを使ってvisibilityの切り替えをする場合
android:visibility="@{viewModel.isVisiblememoHintTextViewRxProperty.value}"
みたいな形でbooleanを渡すだけで切り替えができていたのが、できなくなっていた。 しかも過去はできていた分エラー情報の少ないdatabindingのおかげでデバッグに詰まった。 xmlは不便だ。

ryuta46.com

<import type="android.view.View"/> したうえで
android:visibility="@{viewModel.isVisiblememoHintTextViewRxProperty.value ? View.INVISIBLE : View.VISIBLE}" とする必要がある。
Databindingは便利なんだけどデバッグの手間考えると使わなくていいんじゃないかって気がしている。

他アプリのパッケージ名とActivityの名前を取得する

他のアプリのActivityを開きたいときがあって、手っ取り早く見る方法。
Android端末を繋いでAndroid Studioを開くとログキャットが出る。
その状態で適当なアプリを開いて、ComponentInfoでログキャットを検索する。
あとは下記の通り。

memo.abridge-lab.com

RxPropertyでボタンを非活性にする

RxPropertyというライブラリを使っています。

github.com

これでdatabindingするのがとても楽です。

ボタンを非活性にするのにenabled=@{viewModel.isEnableButton.value}
みたいにやろうとして詰まりました。

このライブラリは本当によくできているので、rxCommandが有効化かどうかで活性非活性をコントロールしてくれるので、enableとか書く必要無かったです。
このあたりを参考に

qiita.com

qiita.com

Androidで定数をどこに定義するべきか

Androidで定数をどこに書くか問題

pooh3mobi.hatenablog.com

これを見ると、コード内でのみ使う定数はxmlに書くべきじゃないみたい。 ユーザーに見えるstringはxmlに書くべき。

じゃあコード内でのみ使う定数はどこに書くか

yyyank.blogspot.com 定数クラスを使いましょうという話

定数をkotlinでどう書くか

qiita.com

const val を使ったほうがいいよねって話らしい