fresh digitable

セミコロンたちが躍動する おいらのコードを 皆さんに 見せたいね

Kotlin

fluxとかMVIみたいな構造のアプリを作ってみたかった その2

以前書いたこの記事 akihito104.hatenablog.com の中で、 最初はViewStatesに入れれば一方向のフローになるかなと思ってやってみたんだけどkaptがメッセージ無しの謎のエラーを吐いてこれを解決できなかったので断念した というようなことを書いた。今回はこ…

WeakReferenceに包みつつNonNullなプロパティとしてアクセスするためのデリゲートプロパティ

例えばこういうのを private val _foo= WeakReference<FooActivity>(activity) private val foo: FooActivity get() = requireNotNull(_foo.get()) こんな感じで private val foo: FooActivity by weakRef(activity) 使えるようにしたい。そんなときはデリゲートプロパテ</fooactivity>…

danger-kotlinをやっていこう

DangerfileをKotlin scriptで書けるというので試してみている。今の時点ではver. 0.5.1でWIPとのこと。 github.com Github Actionsで実際に動かしてみているのだが、これまでDangerで使っていたようなプラグインが使えるようにはなっていないようで、今のと…

nasneの録画予約の時刻表現をパースしてついでに曜日のローカル表現を取得する

まず何はなくともthreetenABPを入れる。 implementation 'com.jakewharton.threetenabp:threetenabp:1.2.3' 時刻表現のフォーマット Java8のDate and Time APIのDateTimeFormatterにはいくつかのフォーマットがすでに登録されている。 DateTimeFormatter (Ja…

CoroutineLiveDataをどうにかしてテストする

関数androidx.lifecycle.livedataからCoroutineLiveDataというLiveDataを取得できる(CoroutineLiveDataはinternalクラスなので実際見えるのはLiveData )。例えば次のような感じで中断関数を渡してやるとライフサイクルとかとの関係をいい感じにやってくれ…

Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6. Please specify proper '-jvm-target' option

ある日突然怒られたりするやつです。ライブラリを新しく入れたりアップデートしたときとか。 stackoverflow.com android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { j…

ObservableでないプロパティをKotlinのChannelで定期的に通知させる

コールバックがなくて値が変わった時にそのことがわからないようなプロパティを観測可能にしたい。KotlinのChannelの機能を使ってそれっぽい仕組みを作ってみた。Channelは現時点(kotlinx-coroutine 1.1.1)ではExperimental。 Androidで動画や音楽を再生す…