TIL

Today I learned

Single.fromObservableの挙動

RxJavaを使っているプロジェクトで、ObservableからSingleになんとなく変換して使っているコードを自分の周りでよく見かけていて、自分の理解と違う動きをしているケースがあったので挙動を確認していく。

アイコン付きButtonへのTips

アイコン付きのボタンを実装する機会が度々ある。drawableLeft で文字とは別でアイコンを設置するのではなくアイコンと文字を合わせて真ん中寄せにしたいことが多い。 ViewGroupで囲えば実現できるがもうちょっとスマートにできる方法がないか毎回思うので試…

Kotlin Coroutinesのasync/awaitの挙動を確認してみる

RxjavaのコードをCoroutinesで書き直せるのか?など調べていくうちにCoroutinesでの動き方に曖昧に理解しているところがあったので動かしてみた結果をメモしておく。 Kotlin version : 1.3.31 Coroutines version: 1.2.1

SingleのdoOnSuccessとmapの挙動を確認する

RxJavaのdoOnSuccessとmapの挙動を確認した時のコード。doOnSuccessで加工してもmapには渡らないので気をつける

androidxへのmigrateでConstraintLayout内のlayoutが崩れた時

androidxへmigrateしたことが影響したのかConstraintLayout内でlayoutが崩れたのでメモ。

API24以下でNoSuchMethodError:No static method hashCode

Kotlin 1.3.30を使っていてAPI24以下の端末で java.lang.NoSuchMethodError: No static method hashCode(Z) のエラーが出てcrashすることがあったのでその対応のメモ。

LivedPagedListで件数が0件のときの挙動を制御する

Paging libraryを使ってNetworkからdataをfetchする時、fetchは成功しているが件数が0件をどう検知するかにちょっと悩んだのでメモ。 viewModel imageData = LivePagedListBuilder(factory, config).build() fragment viewModel.imageData.observe(this, Obs…

RetrofitでJson以外のresponseでのMalformedJsonExceptionに対応する

APIがJsonではなく例えばStringなどJsonではない値を返す場合、retrofitのconverterにGSONしか追加していないと以下のエラーが発生する。 com.google.gson.stream.MalformedJsonException: Expected value at line 1 column 6 path そんな時はRetrofitにconv…

CircleCI上でlicences have not been acceptedに対応する

CircleCI上で Failed to install the following Android SDK packages as some licences have not been accepted.のエラーでBuildが失敗する時の対応についてもメモ。他にもいろんな方法があるっぽい…が一例として。 特にCI上で使用しているdocker imageはci…

ICU4JをAndroidで使う時

Unicodeの文字変換を行えるICU4jというライブラリをAndroidで使う時に遭遇したことや対応したことなどのちょっとしたメモです。 一言でいえばここを見れば済む話である。 Unicode and internationalization support | Android Developers 最新versionの63.1…

getComponentsDrawable()がnullになるとき

メモです。 TextView等でdrawableStart/drawableEndを使ってicon等のリソースを設定している場合などで getComponentsDrawable() を使うと大概の場合は特に問題なく動くが、稀にnullが帰ってくる場合がある。(drawableRight/Leftを使っている場合は問題ない…

RxJavaのsubscribeOnとobserveOnの違いを理解したい

今更ながらRxJavaのsubscribeOnとobserveOnの違い、使い分けがわからなかったので理解するときに参照した記事と動かして試したこととのメモです。 こちらの記事を参考にしました。 http://reactivex.io/documentation/operators/subscribeon.html https://gf…

API23以下でも<item>で幅/高さを設定したい

layer-listでdrawableファイルを書く時等で、読み込むiconの表示幅/高さなどを変えたい時のメモ。 具体的には左を右のようにしたい時。 API23以降だとitem要素にwidthとheightが設定できる

VectorDrawableのOS差異

現象についてのメモであり、解決策ではありません。 SVGからVectorDrawable化した時に元画像では空いているはずだった穴が埋まってしまう問題。 qiita.com

GsonでJsonSerializer/JsonDeserializerを使う

Gsonを使ってJavaのObjectとJsonの間をコンバートする際、カスタマイズしたい時があったのでどんなユースケースだったのかとどう書いたかのメモ。 もっと良いやり方がありそうな気がするが作業ログということで。使用しているGson ver: 2.8.1。 Deserialize …

ConstraintLayoutの中のTextViewが欠ける

ConstraintLayoutの中に複数行のTextViewを置いた時、ConstraintLayoutのレイアウトに合わせて折返しされず行末が表示されない問題。 以下の記事と同じ現象で参考にさせてもらいました。 https://stackoverflow.com/questions/46350501/android-constraintla…

Annotation Processingをdebugする(Java Project編)

Annotation Processingを使ってコンバイル時に処理をする際にDebugする方法をまとめておきます。 AbstractProcessorを継承したクラスをDebugモードで実行します。 前提としてIntelliJを使用しています。

Picassoでresizeがうまくいかない

Picassoを使っていて何故か正方形画像のみ、resize/centerInsideがうまく動いてないケースにぶつかった。centerInsideしているのに画像の端が切れてしまいcenterCropのような表示になってしまう感じ。 しかも1回目の読み込みのみ起こるのでおそらくネットワ…

Emulatorのネットワークが不調

何をしてもEmulatorのネットワークの調子が悪かった。 API24のEmulatorでは正常だが一部の端末(自分の環境ではAPI27のようなAPI levelが比較的高いOSのもの)で ずっとネットワークの部分にバツがついていて繋がらない状態になっていた。

BottomSheetDialogのlandscape対応

Android Working with Bottom Sheet - Persistent and Modal Bottom Sheets こちらを参考にBottomSheetDialogを拡張したFragmentを使った時のメモです。 理由などは理解していないところもあるので、現象とこうしたら動いたの一例として参考にしてもらえれば…

Go研修を修了しました

TIL

2017/11~2018/4の6ヶ月間、柴田先生のGo研修を受講しました。無事修了したので感想やメモをまとめておきます。 研修概要 こちらの研修を受講しました。 第5期Go言語研修を開講しました:柴田 芳樹 (Yoshiki Shibata):So-netブログ 「プログラミングGo」の書…

Groovy入門して躓きメモ

TIL

Java→Groovy初日で出会ったエラーたちやメモたち。 syntaxもよくわからない中で出会って、解決するのに慣れなかったのでメモしておく。 メソッドの呼び出し間違い メソッドの呼び出しが間違った時 Caught: groovy.lang.MissingMethodException: No signature…

「テストが書きやすくなる」の意味を紐解く

Androidアプリの話です。MVPアーキテクチャをAndroidにいれることでどういうリターンがあるんだろう?というのがもやもやしていて、「テストがしやすくなる」というメリットについてあまり実感持てずにいた。単体テストコードを書いていてなんとなくこういう…

【Android日誌】2016_02_08週_Collectionとは

TIL

Javaでまだまだわかってない部分もあるので、改めて調べる機会などもありました。 今週のアウトプット少ない。 Collectionとは Collection * List * ArrayList * LinkedList * Vector * * Set * SortedSet * HashSet * TreeSet * * Map * Hashtable * HashMa…

【Android日誌】2016_02_01週_Invalid Gradle JDK configuration found他

TIL

コーディング以外にも調べる機会があったのでアウトプットしていきます。 ディープリンクとは Topページ以外のページへのリンクのこと。元々はWebサイトについての言葉だが、アプリに対しても使う。 アプリをインストールしているユーザーだった場合は、アプ…

【Android日誌】2016_01_25週:どこまでnullチェックすればいいのか他

TIL

shouldOverrideUrlLoading()はpostだと呼ばれないよ webViewのページ読み込み時にURLを割り込みできる関数だが、 /** * Give the host application a chance to take over the control when a new * url is about to be loaded in the current WebView. If W…

【Android日誌】2016_01_18週:WebViewのキャッシュモード他

TIL

webViewのヒストリーバック時にERR_CACHE_MISS ブラウザでも同じ挙動になるが、入力→確認→完了画面といった遷移でポストで情報を受け渡ししているとき、historyバックするとERR_CACHE_MISSというエラーになってonReceivedErrorに入ってしまう。今回担当の要…

2016_01_12週_子要素のstateに合わせてstyleを変える他

TIL

子要素のstateに合わせてstyleを変える 子要素にcheckboxが入っているlinearLayoutとかで、子要素のcheckedに合わせて親のlinearlayoutもstyleを変えたい時 LinearLayout CheckBox こういう状態で、CheckBoxのcheckedの状態によってLinearLayoutのスタイルを…

2016_01_05週_Parcelable内のwriteとreadの順番他

TIL

毎日メモはしてるので土日にまとめて公開することにします。 一週間経つだけでも全然忘れてしまうな…。ブログに公開することで、自分が目に通す回数を増やしたりできればいいな。 良い復習にはなりそう。 JVMとJREの違い 聞かれてわからなかった・・・ http:…

2016_01_04_CursorIndexOutOfBoundsException他

TIL

新年。引き続き学んだことの記録を。新年の抱負など冬休みの記録は改めて。 SDK更新後のAndroid studioのエラー qiita.com sdk更新したりしてたらエラー出まくって心臓に悪かった。 logcatでエラー http://www.hangout.co.jp/blog/archives/148www.hangout.c…