4年が過ぎた

今更感あるがGWで時間があるので書きのこしておくことにする。1年後見て成長したなと思えるように。

前回までのあらすじ

3年が過ぎた - C-FRONT

エンジニアへのキャリアに焦りまくっていたところ今の環境に異動が決まりAndroidエンジニアとしてのキャリアを再出発した。

続きを読む

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に対応する

APIJsonではなく例えばStringなどJsonではない値を返す場合、retrofitのconverterにGSONしか追加していないと以下のエラーが発生する。

com.google.gson.stream.MalformedJsonException: Expected value at line 1 column 6 path 

そんな時はRetrofitにconverterを指定できる。今回の場合のようなprimitiveな値を扱う場合はScalars Converterが使える。

続きを読む

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はcircleci/android:api-28-node8-alphaの場合。

続きを読む

ICU4JをAndroidで使う時

Unicodeの文字変換を行えるICU4jというライブラリをAndroidで使う時に遭遇したことや対応したことなどのちょっとしたメモです。

一言でいえばここを見れば済む話である。

Unicode and internationalization support  |  Android Developers

最新versionの63.1を使用するとAPI level23以下のデバイスでは次のようなエラーでアプリが落ちる。 (自分の場合は半角文字を全角文字に変換するという処理の時で使っていて遭遇)

続きを読む