kotlin
背景 なんとなくnullableにしたくなくて次のように記載したら'lateinit' modifier is not allowed on properties of primitive type と警告された。 /** * Constructs an [ClientException] with no detail message. */ constructor() : super() /** * Const…
背景 DroidKaigi 2019 のofficial appが公開されている:参照 せっかくだしコントリビュートしたいなと思ったけど思った以上に皆新しい技術使っててよくわからない。。 とりあえず一つずつ理解することにする。 Storeを読む ついにMainActivityから脱出してSt…
背景 DroidKaigi 2019 のofficial appが公開されている:参照 せっかくだしコントリビュートしたいなと思ったけど思った以上に皆新しい技術使っててよくわからない。。 とりあえず一つずつ理解することにする。 コンテンツの実装を見ようとした。 Navigation…
背景 DroidKaigi 2019 のofficial appが公開されている:参照 せっかくだしコントリビュートしたいなと思ったけど思った以上に皆新しい技術使っててよくわからない。。 とりあえず一つずつ理解することにする。 アプリ起動から順に追っていく DroidKaigi 2019…
背景 DroidKaigi 2019 のofficial appが公開されている:参照 せっかくだしコントリビュートしたいなと思ったけど思った以上に皆新しい技術使っててよくわからない。。 とりあえず一つずつ理解することにする。 DroidKaigi 2019 official app のbuild.gradle …
背景 毎回RecyclerViewを利用する時に「どうやって作るんだっけ」と悩む 根本的に理解し直す必要があるので再度復習する。 構成 登場人物は以下の4つ。 Adapter RecyclerViewに表示するViewを生成・管理・紐付ける役割を持つ。 表示するViewを生成するため…
背景 以下のクラスを考える。 ここではパラメータが二つあるが、それぞれ意味合いが異なる。 domain : インスタンスの特徴を示す情報。アイデンティティ。 repository : 依存性注入のため生成時に指定している。動作環境によって変更される。 このクラスのイ…
背景 以下の構成を考える。 ドメイン層は他の層と依存関係を持たないが、ドメインのメソッドで通信を行いたい。 そのためにinterfaceを設定してリポジトリ層と疎結合にする。 ただしリポジトリ層でも通信をする場合とテスト用にローカルファイルを返却する場…
状況 List型のデータを取得し、画面にRecyclerViewで表示させたい。 だけどobserve書きたくないし、RecyclerViewのAdapterクラスをViewModelで持ちたくないし。 LiveDataに値をpostしたらいい感じに紐づいてくれないだろうか 実装 以下のように実装した。 主…
状況 Retrofitを使った以下のソースコードでスマートキャストできないとエラーが発生した。 override fun search(word: String): List<NovelIntroduction> { val response = searchService.getNovelList(word).execute() if (response.isSuccessful && response.body()!=null) {</novelintroduction>…
状況 利用しようとしたAPIレスポンス(json)が一項目目と二項目目以降でレスポンス項目が異なるという鬼畜仕様。 そのため全てのレスポンス項目を含むレスポンスクラスを作成し、一旦レスポンスを受け取る。 Translatorクラスを作成し、レスポンスをドメイン…
対象者 DIはもうわかったけどDagger2の使い方がわからない人 javaのサンプルは多いけどkotlinのサンプルが少なくて困惑している人 @Moduleとか@Provideとか@Componentとか@Injectってあるけど最小で動かすとしたらどれが必要なんだと困惑している人 最小構成…