Componentの簡単なサンプル2020/02/03Dagger2は最初は難解だ・・・Web業界でJava(Kotlin)でDIしようと思ったらSpringが有名だと思います。自分も昔Spring(SpringBoot)を使っていたのでDIはなんとなくわかっていたのですが、それでもDagger2は難解でした。AndroidでDIをしようと思ったらDagger2かKoinが有名かと思います。自分は基本的にはDagger2を使っています。Googleが公開しているAndroidのサンプルプロジェクトでもDagger2が使われていることが多いです。Dagger2は最初はとっつきにくいです。導入するときは参考ページの通りに書いているのにコンパイルエラーが発生したりと何が原因でエラーが発生しているのかよくわからないことになったりもします。最近はエラーメッセージもかなり改善されているような気がします。簡単なサンプルそこでDagger2を初めて使おうとしている人向けに非常に簡単なサンプルを作成しました。android-dagger2-example以下のような人に参考にしていただければと思います。Dagger2の導入がうまく行えないViewModelとDagger2の連携方法がわからないSquareのAssistedInjectを導入したいが何をどうすればよいのかわからない特にリストページから詳細ページに遷移するときに詳細ページのViewModelにIDみたいな情報を渡したいときがあります。このIDはDaggerで管理しているわけではないので、どうやってViewModelに渡すのかと考えることがあると思います。DaggerでViewModel生成を行うときにDaggerが管理していない値を渡すのが非常にしんどいのですが、この課題をAssistedInjectを使って解決しています。ComponentのSafeArgsでFragmentにタイプセーフな引数を渡してViewModelにタイプセーフに不変な値を渡せます最近はこの書き方を良くしていますが、FragmentとViewModel間が型と不変に守られる良い世界になったなーと思います。あとできればDagger2でViewModelFactoryの取り扱いをサポートしてくれたらさらによくなるのにと思っております。今思ったらModuleを使っていないのでViewModelに何かインジェクトするようにしたいと思います。コメントをキャンセルメールアドレスが公開されることはありません。3.4からコードシュリンカー・難読化にR8がデフォルトで使用されるようになりました。先日、たまたまmaterial-components-androidのCatalogアプリを見ていたらBottomNavigationにBadge機能がついていました。Sharingを使う機会があったのでメモを残します。ConstraintLayoutのお勉強Androidはいろいろ難しいところがあるのですが画面にビューを表示するレイアウトも慣れないと難しいものがあると思っています。...KotlinKotlinのコードをktlintでチェックしてDangerでGitHubのPRへ通知する最近、仕事で初めてKotlinでサーバーサイドアプリケーションを書く機会がありました。AFFINGER5.。