手短に github.com 動機付け vtuberの配信をよく見るようになった。調子に乗ってチャンネル登録してたら登録数が200をこえました。ななしいんく箱推しです。 YouTubeの「登録チャンネル」ページ(PC)は、配信中のものが上の方に出てきて、それ以降は配信ペ…
こんなことで困る人なんていないような気もするが、ネタとしては面白いと思ったのでまとめてみる。困っていることというのは、res/raw以下にある複数のファイルのうち任意の1つを消すと通知の着信音が変わってしまうということ。何を言っているか分からない…
続きです:akihito104.hatenablog.com Usage Library 複数のファイルに分かれたプログラムを、一貫性のあるメンテナンス可能な方法で構成するのに役立つ。importについてのみ言及しているが、exportディレクティブに対しても応用できる。 part ofディレクテ…
続きです:akihito104.hatenablog.com Document dart.dev そのコードを書いている間はコードの意図が明白であったとしても、そのコードを初めて見る人や、将来の自分でさえも、その時の文脈を知らないかもしれない。 コメントを書くのには数秒程度しかかから…
JavaではEffective Javaを、KotlinではKotlin in actionを読んだので、同じようなことをDartでもやっておこうと思って探したら公式のページに書いてあった。 dart.dev 書き始めて3か月ぐらい経つのでちょっと遅いかもしれないが読んでいくことにする。全訳す…
"flutter Image blur"で検索してもBackdropFilterの記事しか出ないのでカッとなって書いた。画像にボケと透明度を同時に適用したいとか、BackdropFilterだとボケの感じが思ってたのとなんか違うなという時にどうぞ。 ImageFiltered( imageFilter: ImageFilte…
前提とやりたいこと 関係しそうな環境: "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…
fluxとかMVIみたいな構造のアプリを作ってみたかったシリーズの主にその5と6をまとめたりまとめなかったりしてZennに投稿した。 zenn.dev FeaturedにのったりPick upということで公式のTwitterアカウントで流れたりして、自分としては初めてのことなのでよか…
前の記事: akihito104.hatenablog.com Viewの状態の更新処理はViewModelSourceで行っている。このクラスでの過去の実装を振り返り、反省点を踏まえてリファクタリングした時のことについて書く。その5の内容に強く依存しているので先にそちらを読むことをお…
3行で 平行に処理してみたりキャッシュが効くようにしたが早くはならなかった やってみたかったのでやった 後悔はしていない その時のPR: github.com チェックを並列に実行するが効果なし(むしろ増) これまでのコミットチェックではAndroidのLintとktlint…
はじめに そんなことをやる必要はありません。あくまでもネタとしてお読みください。 今回の: 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 いつもは帰省して暇になった時間に書くんだけど今年は帰省しなかったので書きそびれていた。例によって五十音順です。もしそうなっていないところがあったら私のミスです。カッコ[]付きは未視聴(…
事の発端: テスト書こうとしたら Caused by: com.almworks.sqlite4java.SQLiteException: [1] DB[1] prepare() CREATE VIEW `view_foo` AS WITH bar AS ( ... [near "WITH": syntax error] がでたので今日は終了— まつだあきひと (@akihito104) 2020年12月1…
つづきです: akihito104.hatenablog.com fragment-testingを使おう 前回の記事では空のActivityにカスタムビューをアタッチしてからテストしているが、androidxのfragment-testingというライブラリを使うのが楽そうというか正しそうなのでこちらを使いましょ…
今回やりたいこと 投稿する画像をギャラリーから選ぶかカメラで撮るかして取得したいのでIntent Chooserを出したい いい機会なのでActivityResultContractを使いたい tweet input: enable sending media · Issue #130 · akihito104/UdonRoad2 · GitHub 前提 …
前の記事: akihito104.hatenablog.com このツイートに関連して困ったことが起きている。 layout inspectorを起動するとActivityが再生成されるのかいろいろバグってしまうしそれによってViewの様子も変わってしまうので結局何がしたかったのかわからないとい…
androidのライブラリ lifecycle-reactivestreams-ktx にはRxJavaの Publisher<T> を LiveData<T> に変換する拡張関数 androidx.lifecycle.toLiveData() がある。この関数が返してくるLiveDataの実装クラス LiveDataReactiveStreams.PublisherLiveData は、RxのonNe</t></t>…
つづきです 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>…
fluxとかMVIみたいなリアクティブ?な構造のアプリを作ってみたかったのでやってみた。Cycle.jsのドキュメントを参考にして自分なりにかみくだきながら作っていったので気持ちとしてはMVIのような感じだけど、実際に自分で作ったものが何なのかはわからない…
いろいろハマってしんどかったので雑にまとめておく。 github.com ことの顛末 Instrumentation Testのテストが全然動かない。テストがないとか言われる LogcatをみるとDaggerTestAppComponentをDaggerAppComponentにキャストできませんとか言われている。そ…
ViewModelが持っているLiveDataの値をインスタンスステートとして保持したいとき、androidxのlifecycle-viewmodel-savedstateライブラリを使う。fragment 1.2.0やactivity 1.1.0を入れているとその依存関係としてsavedstateも入ってくる*1。この記事ではlife…
DangerfileをKotlin scriptで書けるというので試してみている。今の時点ではver. 0.5.1でWIPとのこと。 github.com Github Actionsで実際に動かしてみているのだが、これまでDangerで使っていたようなプラグインが使えるようにはなっていないようで、今のと…
テスト書くの後回しにしちゃったなーでもこの関数のテスト書かなきゃ…みたいなとき、まずどうするか。大事なことは最初のハードルを下げたり、ステップを小刻みにすること。 とりあえず最初はテスト対象のインスタンスを生成してそれがNonNullであるというテ…
androidTestで使うDBのデータをセットアップするという記事を以前書いた。 akihito104.hatenablog.com 今回はこれをJUnitテストでも使えるようにしようとしてはまったポイント。 robolectricで使ってるsqliteの内部実装がdefer_foreign_keysに対応してないっ…
github.com なんかいろいろあったのでメモ。 今回の前提 implementation "androidx.navigation:navigation-fragment-ktx:2.3.0-alpha06" implementation "androidx.navigation:navigation-ui-ktx:2.3.0-alpha06" implementation "com.google.android.materia…