nashcft's blog

時々何か書く。

Kotlin

Klock の今

Kotlin multiplatform 向け datetime ライブラリの Klock は昨年の8月にリリースされた 4.0.10 以降リリースされていないように見える。 参考: https://mvnrepository.com/artifact/com.soywiz.korlibs.klock/klock 実際は現在もメンテが継続されており、 ko…

Kover 触ったメモ

DroidKaigi 2023 公式アプリなどで触ったので所感などを書き残しておく。この記事の内容は Kover 0.7.3 時点の機能に基づいている。 書いてたら思ったより長くなったので先に結論を書いておくと「簡単なので使う場合は各自でいい感じにやっといてください」…

Kotlin: runCatching と coroutine

内容的には以下の issue で議論されていることの抜粋のようなものだが、つまるところ現状 Kotlin Coroutines と runCatching (より詳細には runCatching の block 内で suspend function を呼んだ場合) の食い合わせが悪い問題に対してどういう対処ができる…

Apollo Kotlin: エラーハンドリングのプラクティスと union type とコード生成方式

以前 Android で GraphQL あまり嬉しくないのでは的な tweet をいくつかしていて、その中でエラーの扱いに困るなというものがあった。 GraphQL の error response は実質任意の構造の object って感じなので kotlin と相性悪いなって思った— nash (@nashcft)…

Android project で Gradle 8.0 に更新するために Java toolchain の設定をする

ある日 Android project の Gradle を 7.6 から 8.0 (この記事を書いている時点での最新は 8.0.1) に更新したところ以下のようなエラーと共にビルドに失敗した: 'compile{Variant}JavaWithJavac' task (current target is 1.8) and 'kaptGenerateStubs{Varia…

Cast SDK の KTX ライブラリを作っている

github.com 夏頃から社のアプリの Cast 機能まわりを触り始めてて、しばらくして本格的に機能開発に関わるようになったところで一旦きちんとAPIさらっておくかーと思ったのと、ついでに Kotlin サポート欲しいけどすぐ出てこなそうだから自分で作るかーって…

Kotlin Android Extensions の view binding に関する知識の整理

Kotlin Android Extensions の解説記事、Kotlin のリファレンスとか英語ソースだったらよくまとまってるのがあるけど日本語ソースだとあんまりいい感じのないなーという印象なので自分でまとめてみる。ただし view binding の方だけ。英語が読めるなら以下の…

Kotlin で『テスト駆動開発』を進める

記事のまとめ Part I 1~4章 5~7章 8~11章 12~13章 14~16章 Part II まだ

Kotlin で『テスト駆動開発』を進める (第14章 - 第16章)

前回 さて Kotlin で『テスト駆動開発』を写経するシリーズも Part I が今回で終わるので一区切りとなる。前回で書籍のコードから設計方針を転換しているので、1つ1つのタスクに対してどのように方針を立て実装していくか、きちんと過程を残すように書きたい…

Kotlin で『テスト駆動開発』を進める (第12章 - 第13章)

前回 前回までは通貨を表すクラスをシンプルにしていくタスクが中心だったが、今回からやっと本題である通貨の足し算に手を着け始める。 現在のコード: MoneyTest.kt class MoneyTest { @Test fun testMultiplication() { val five = dollar(5) assertEquals…

Kotlin で『テスト駆動開発』を進める (第8章 - 第11章)

前回 今回は11章まで進める。前回からの Money, Dollar, Franc にまつわるリファクタリングの続きで、今回分で一区切りがつく内容となっている。 現在のコードは以下の通り: MoneyTest.kt class MoneyTest { @Test fun testMultiplication() { val five = Do…

Kotlin で『テスト駆動開発』を進める (第5章 - 第7章)

前回 nashcft.hatenablog.com 今回は第5章から第7章まで進める。 これまでの過程で書いたコードは以下の通り。前回の脚注で触れているが実際に私が取り組んだ時のものに対して順序の再構成やコードのブラッシュアップなどを行っているため、レポジトリのコー…

Kotlin で『テスト駆動開発』を進める (第1章 - 第4章)

せっかく『テスト駆動開発』を読むのだから写経をしながら、それにただ写経するだけというのもなんだし他の言語でやろうということで学習がてら Kotlin で取り組んでいたのだが、これが中々面白かったので取り組んだ過程を、ある程度整理した上で*1書いてま…