【Tips】ソフトウェア設計
関数の返り値は極力小さく これは今のためではなく、将来的にもコードをきれいに保つために非常に重要です。特に多数の人が利用する基盤要素のクラスでは。 関数の返り値が多くの要素にアクセス可能なラッパークラスであればあるほど、 … 続きを読む
関数の返り値は極力小さく これは今のためではなく、将来的にもコードをきれいに保つために非常に重要です。特に多数の人が利用する基盤要素のクラスでは。 関数の返り値が多くの要素にアクセス可能なラッパークラスであればあるほど、 … 続きを読む
原因 KotlinのDataクラスではdefault constructorが生成されないのが原因です。 対策 一般に言われている対策は以下 Data classにデフォルトバリューを付与して、すべてvarにする Dat … 続きを読む
google-http-java-client 抽象化することで低層のライブラリに依存することなく、統一的な操作がHttp操作が可能です。 https://github.com/googleapis/google-htt … 続きを読む
改善の余地しかないですが、以下で実装できます。srcは{1,2,3}のような順列を取得してほしい値の配列で、返り値がそのすべての順列結果を含んだ配列です。 ちなみに、自分の環境だとsrcの配列数が11になった時点でOut … 続きを読む
Javaで配列を使用するのは、よっぽど性能が求められる場面に限られており、むしろ型安全が保障されない場合があるので基本的にListを使用した方がいいです。そもそも配列の標準ライブラリが貧弱で、Listでは簡単に実現できる … 続きを読む
何度か書籍で読んで、何度か作成したこともあって分かった気になっていたが、全然細かいところまで理解できていなかったので、自分でまとめてみる 総論 単語 単語 説明 例 Generic Type Genericな型 List … 続きを読む
Lombok Javaに使用される汎用ライブラリで、@Getter, @Setter等のannotationを使用することで、getter/setterをコンパイル時に自動生成してくれるので、コードベースが非常にシンプル … 続きを読む
①init内で発火するCoroutineでasyncして、他のsuspend関数でawaitする場合の実装ミス タイミング問題で表面化しない可能性があるので厄介です。 initはsuspend関数ではないため、corou … 続きを読む
SharedFlow, StateFlowの違いについて StateFlowはSharedFlowの特殊版。 初期値を有する 新しいSubscriberには最新の値をemit 最新値以外のCacheはしない resetR … 続きを読む
原因 Main Threadでの実行が必要なAPIを使用している。 対策 公式の回答がこちら https://developer.android.com/kotlin/coroutines/test#setting-ma … 続きを読む