Kotlin
手短に github.com 動機付け vtuberの配信をよく見るようになった。調子に乗ってチャンネル登録してたら登録数が200をこえました。ななしいんく箱推しです。 YouTubeの「登録チャンネル」ページ(PC)は、配信中のものが上の方に出てきて、それ以降は配信ペ…
前提とやりたいこと 関係しそうな環境: "androidx.navigation:navigation-fragment-ktx:2.3.0" "androidx.navigation:navigation-ui-ktx:2.3.0" ツイッタークライアントを作っている。起動したらホームタイムラインを表示して、そこからツイートの詳細やユ…
前回: akihito104.hatenablog.com の最後に、 とくにActionsはもっと定型化できるように思う。 というようなことを書いた。ここまでの実装は、 class HogeActions( private val dispatcher: EventDispatcher, ) : HogeEventListener { val selectAccount: Fl…
前の記事: akihito104.hatenablog.com Viewの状態の更新処理はViewModelSourceで行っている。このクラスでの過去の実装を振り返り、反省点を踏まえてリファクタリングした時のことについて書く。その5の内容に強く依存しているので先にそちらを読むことをお…
はじめに そんなことをやる必要はありません。あくまでもネタとしてお読みください。 今回の: org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.3 org.jetbrains.kotlinx:kotlinx-coroutines-test:1.4.3 androidx.lifecycle:lifecycle-livedata-ktx:2.2.…
前回: akihito104.hatenablog.com 前回からの進捗としては、NavigationDelegateをActivity, Fragmentに持たせることにしたり機能追加をやっていた。その中でViewModel以下のクラスをリファクタリングしたところしっくりくるような形になったのでまとめてみ…
前置き JavaでJUnit4のテストを書いていたころは、@Beforeを付けた(setup()のような名前の)メソッドの中にテスト対象やその依存関係の初期化処理を書き、テストケースの中で使うもの(テスト対象など)はフィールドに定義してsetup()メソッドの中でフィー…
つづきです akihito104.hatenablog.com 今:Eventを流してModelを更新し、その結果ViewStateが更新される 課題:Modelを更新したときに出てくる例外をどうするか 例えばこんな感じのハッピーパスしか考えてないやつ(スレッドとか中断関数とかそういうことは…
以前書いたこの記事 akihito104.hatenablog.com の中で、 最初はViewStatesに入れれば一方向のフローになるかなと思ってやってみたんだけどkaptがメッセージ無しの謎のエラーを吐いてこれを解決できなかったので断念した というようなことを書いた。今回はこ…
例えばこういうのを private val _foo= WeakReference<FooActivity>(activity) private val foo: FooActivity get() = requireNotNull(_foo.get()) こんな感じで private val foo: FooActivity by weakRef(activity) 使えるようにしたい。そんなときはデリゲートプロパテ</fooactivity>…
DangerfileをKotlin scriptで書けるというので試してみている。今の時点ではver. 0.5.1でWIPとのこと。 github.com Github Actionsで実際に動かしてみているのだが、これまでDangerで使っていたようなプラグインが使えるようにはなっていないようで、今のと…
まず何はなくともthreetenABPを入れる。 implementation 'com.jakewharton.threetenabp:threetenabp:1.2.3' 時刻表現のフォーマット Java8のDate and Time APIのDateTimeFormatterにはいくつかのフォーマットがすでに登録されている。 DateTimeFormatter (Ja…
関数androidx.lifecycle.livedataからCoroutineLiveDataというLiveDataを取得できる(CoroutineLiveDataはinternalクラスなので実際見えるのはLiveData )。例えば次のような感じで中断関数を渡してやるとライフサイクルとかとの関係をいい感じにやってくれ…
ある日突然怒られたりするやつです。ライブラリを新しく入れたりアップデートしたときとか。 stackoverflow.com android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { j…
コールバックがなくて値が変わった時にそのことがわからないようなプロパティを観測可能にしたい。KotlinのChannelの機能を使ってそれっぽい仕組みを作ってみた。Channelは現時点(kotlinx-coroutine 1.1.1)ではExperimental。 Androidで動画や音楽を再生す…