Skip to content

Latest commit

 

History

History
43 lines (36 loc) · 2.64 KB

File metadata and controls

43 lines (36 loc) · 2.64 KB

Fullscreen Timer

プロジェクト概要

  • 目的: 全画面で時計・タイマー・ストップウォッチを表示するアプリ
  • 主要機能: 全画面表示・任意の色を設定・フォント選択

エージェントへの基本指示

  • 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スタイルガイドに従う
  • スコープ関数は可読性を優先して選択、applyalsoの可読性が同等であれば、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の中にも直接は記述せず、ロジックを単独のクラスとして切り出すこと