2021-01-01から1年間の記事一覧

Haskell(GHCi)のAtcoder用の実行環境を整えたメモ

はじめに Atcoderの問題を解くときには、Haskellでコードを書いてstack ghciをして :l でファイルをロードしてサンプルケースを試す、というやり方をしています。 Atcoderでは利用できるプログラミング言語と、各言語で利用可能なライブラリが一覧されている…

Room multimaps を試す

はじめに AndroidX RoomのVersion 2.4.0-alpha04で、multimapsという機能が追加されたようです。 developer.android.com One-to-One や One-to-Many の関係があるテーブルをJoinした結果をMapで返すことができるようになるみたいです。面白そうなのでこれを…

TestParameterInjectorをKotlinで使う

はじめに TestParameterInjectorという、Junit4でParameterized Testをいい感じに書けるライブラリがある。 github.com READMEなどはJavaをターゲットに記述されているが、Kotlinでも使える。 Gradle + Kotlinで使う 適当にGradleのプロジェクトを作成する。…

Room auto-migrations を試す

Room 2.4.0-alpha01 で(個人的に)待望の auto-migrations 機能がリリースされました。 SQLiteのスキーマを変更する場合には、これまでMigrationクラスを実装する必要がありましたが、auto-migrationsによりマイグレーションの更新クエリがビルド時に自動的…

Dagger2.31以降のViewModelのDIについてメモ

Daggerを使ってViewModelをDIするには@Multibindingsを使う方法を始めとしていくつか考えられますが、ここでは@MultibindingsやSubComponentなどは使わずに、ファクトリークラスを自分で用意する方法を、Dagger2.31で導入されたAssitedInjectも絡めてメモし…