- 目的: 全画面で時計・タイマー・ストップウォッチを表示するアプリ
- 主要機能: 全画面表示・任意の色を設定・フォント選択
- Google推奨のAndroid開発のベストプラクティスに従うこと
- コードを提案・生成する際は、以下の技術スタックとコーディング規約を必ず遵守すること
- 既存のコードベースのスタイルと設計思想を尊重し、一貫性を保つこと
- 言語: Kotlin
- SDK:
minSdk= 26,targetSdk= 37 - UIツールキット: XML (View) / Compose へ移行中
- DI: Hilt
- 非同期処理: Kotlin Coroutines & Flow
- ローカルデータ保存: DataStore
- アーキテクチャパターン: MVVM
- 状態管理: UIの状態はViewModel内で
StateFlowを用いて管理し、Activity/Fragment/Composableから監視すること
- コードフォーマッター: ktlint
- GoogleのKotlinスタイルガイドに従う
- スコープ関数は可読性を優先して選択、
applyとalsoの可読性が同等であれば、alsoを優先すること
- ユニットテスト: JUnit4/MockK/Truth
- UIテスト: Compose Testing
- テストのルール:
- ビジネスロジック追加時には、必ず対応するユニットテストを記述すること。
- テスト対象の可視性をテストのために変更する場合は、
privateからinternalに変更し、@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)を付与すること。 - テストメソッド名はテスト対象のあとにスペースを開けて、日本語でテスト内容を説明文とすること(Kotlinのバッククォート記法を使用)。
- テストクラス名からわかる自明なクラス名部分は、メソッド名から省略すること。
- 日本語をメソッド名に使用するため、テストクラスには
@Suppress("NonAsciiCharacters")を付与すること。
- Javaコードの新規利用は禁止、必ずKotlinを使用
- 非推奨 (Deprecated) となったAndroid APIやライブラリは使用しない
- UI層(ComposableやActivity)に直接ビジネスロジックを記述しない
- 複雑なロジックはUI層はもちろん、ViewModelの中にも直接は記述せず、ロジックを単独のクラスとして切り出すこと