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, Observer{ Timber.d("imageData is observed") })
こんなコード書く時(DataSourceは略)
続きを読む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にconverterを指定できる。今回の場合のようなprimitiveな値を扱う場合はScalars Converterが使える。
続きを読む