Notes
cf. Evergreen Notes
期待されるエラーは値で返して網羅的に扱う
Result/Either で想定したエラーを型に列挙すると、ハンドリング漏れがコンパイルで止まる。
想定外の状態は型で表現できなくする
バグの原因になる3種類の想定外を、non-null と sealed/discriminated union で潰す。
型はレビューで伝えていた知識を運ぶ
明文化されてこなかったレビューの指摘を、実装前の型設計に移す。
Compose の画面は5つの層に分かれる
JetNews のコードリーディングから整理した、Activity から Screen までの層と役割。
表示に使ってよいのは UiState だけ
Composable が参照してよい情報を UiState に限ると、単方向データフローが崩れなくなる。
ViewModel に触れるのは Route だけにする
状態ホイスティングの接続点を Route に集約すると、Screen 以下が部品として純粋になる。