Infinito Nirone 7

白羽の矢を刺すスタイル

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

DEEDS BREWING #BeerAdventCalendar2022

この記事は Beer Advent Calendar 2022 - Adventar の 9 日目の記事です。 これがうめぇんだ! DEEDS XPA しっかりとした苦味がありつつ、後味スッキリですいすい飲めます。 最高です。 DEEDS DOUBLE TIME さっきの XPA の苦味と後味にくわえ、HAZY PALE ら…

DEEDS BREWING #BeerAdventCalendar2022

この記事は Beer Advent Calendar 2022 - Adventar の 9 日目の記事です。 これがうめぇんだ! DEEDS XPA しっかりとした苦味がありつつ、後味スッキリですいすい飲めます。 最高です。 DEEDS DOUBLE TIME さっきの XPA の苦味と後味にくわえ、HAZY PALE ら…

多くのパラメータを持つ関数・コンストラクタの呼び出しに必要な引数を名前付きで自動生成したい

やりたいこと 次のように定義されたコンストラクタを名前付き引数を使って呼び出したい。 // 定義 data class Sample( val hoge: String, val fuga: String, val moga: String, val piyo: String, val foo: String, val bar: String, val baz: String, val q…

つけ麺 えん寺 #つけ麺AdventCalendar2022

この記事は つけ麺 Advent Calendar 2022 - Adventar の4日目の記事です つけ麺 えん寺 ベジポタつけ麺肉増し味たま付き これがうめぇんだ! 説明 ベジポタつけ麺をやっているお店です。 吉祥寺・中野・池袋・東高円寺に「えん寺」がある他、野方に「花みず…

BottomSheetScaffold の sheetContent を空にしてはいけない

BottomSheetScaffold を使って BottomSheet を作るとき、BottomSheet の中身は BottomSheetScaffold の引数にある sheetContent で作っていきます。 developer.android.com BottomSheetScaffold( sheetContent = { /* BottomSheet の中身 */ } ) { paddingVa…

Jetpack Compose 1.2.0 では Scaffold の content に PaddingValues を必ず設定する

Jetpack Compose 1.2.0 (正確には Jetpack Compose 1.2.0-alpha07 以後) から Scaffold の content で Scaffold から渡される PaddingValues を使わないと Lint エラーとなります。 developer.android.com Lint で指摘される例 次の例は Lint のエラーとなり…

DroidKaigi: Weekend Chat の配信を支える構成

Mac を利用した Discord と OBS による YouTube Live 配信環境 DroidKaigi: Weekend Chat は Mac 上で Discord をつないで @mhidaka さんと話しているのを OBS に流して YouTube Live 配信にのせています。 Loopback Windows であれば音声キャプチャはそれほ…

CircleCI で Android アプリプロジェクトのビルドに利用する Docker Image が変わったので更新する

次のような記述で Android 用の Docker Image を利用すると、ジョブのステータスを表示する画面で You’re using a deprecated Docker convenience image. Upgrade to a next-gen Docker convenience image. といったメッセージが表示されます。 executors: a…

Jetpack Compose で GridLayout を実現する

Jetpack Compose には LazyVerticalGrid というグリッド表示をしてくれる Composable がありますが、LazyColumn など他のスクロール可能な Composable にネストしてグリッド表示を作りたい場合は LazyVerticalGrid は利用できません(スクロール可能な Compo…

age++

おかしい。ついこの間 0x20 歳になったばかりだと思っていたのに、もう年齢がインクリメントされてしまった。 コロナはまだまだ収束しそうにないし、それどころか戦争が始まるし、あちこちてんやわんやのドッタンバッタン大騒ぎ感がありますが、私は元気です…

Bundle の大きさを知りたい

前回の Navigation Component の振る舞いに関する記事 に関連して、Activity#onSaveInstanceState などで最終的に Bundle がどの程度の大きさになっているのかを知りたくなったのでいろいろ試してみました。 blog.keithyokoma.dev 結論、次の Stack Overflow…

BottomNavigationView と Jetpack Navigation の組み合わせでバックスタック管理の挙動が変わり TransactionTooLargeException になるパターン

Jetpack Navigation 2.4.x から、multiple backstack がサポートされ、BottomNavigationView と組み合わせて下タブのタブごとにバックスタックを分けて管理できるようになりました。 例えば、A/B/C の 3 つのタブがあったとき、A タブでの画面遷移と B タブ…

AAC ViewModel と StateFlow を組み合わせたときのユニットテスト

前回の続きで、Kotlin Coroutines の StateFlow を利用した AAC ViewModel のテストをする場合の Kotlin Coroutines 1.6.0 の記述について。 blog.keithyokoma.dev StateFlow をつかった AAC ViewModel 次のような AAC ViewModel を継承した SomeViewModel …

グリッド表示とリスト表示を組み合わせた構造の画面を作る場合の Groupie と JetpackCompose の対比

様々な要素を組み合わせた一覧画面の構成 次の図のように、グリッドやリストを組み合わせた画面を作ることを考えます。 画面構成 RecyclerView を使う場合、Groupie を使うとかなり楽にこの画面構成を実現可能です。 Jetpack Compose を使う場合、1.1.0-beta…

RxJava と Kotlin Coroutines のテストチートシート

忘れそうになるのでメモ。テストは Kotest をつかっているが、極力 JUnit でのテストの記述と対比しやすいよう StringSpec で書いていく。 最近 RxJava から Kotlin Coroutines への乗り換えを進めていて、テストの書き方がどう異なるか(あるいは同様となる…