Android画面設計書テンプレート.md
# Androidアプリ画面設計書
## 1. 基本情報
- 画面ID:
- 画面名:
- 機能概要:
- 対応OSバージョン:
- 対応端末:
## 2. 画面レイアウト
### 2.1 レイアウト構成
以下の凡例に沿って当該画面の構成をMermaidで作成すること。具体的なファイル名を分析した依存関係を元にファイル名ごとにオブジェクトを作成すること。
```mermaid
%%{init: {'theme': 'neutral', 'themeVariables': { 'fontFamily': 'arial', 'fontSize': '16px'}}}%%
flowchart TD
A["画面/ページ"]
B>"コンポーネント"]
C{"条件分岐"}
D[["フォーム要素"]]
E[("データ表示")]
F(["アクション/ボタン"])
classDef page fill:#d0d1ff,stroke:#333,stroke-width:2px,color:#000
classDef component fill:#ffe680,stroke:#333,stroke-width:2px,color:#000
classDef condition fill:#c2e0c2,stroke:#333,stroke-width:2px,color:#000
classDef form fill:#ffcce0,stroke:#333,stroke-width:2px,color:#000
classDef data fill:#c6c6ff,stroke:#333,stroke-width:2px,color:#000
classDef action fill:#ffb3b3,stroke:#333,stroke-width:2px,color:#000
class A page
class B component
class C condition
class D form
class E data
class F action
%% スタイルを各ノードに適用して文字を中央寄せにします
style A text-align:center
style B text-align:center
style C text-align:center
style D text-align:center
style E text-align:center
style F text-align:center
線種 |
表記 |
意味 |
|
|
--> |
実線矢印 |
画面遷移、親子関係、直接的な関係 |
|
|
-.-> |
点線矢印 |
イベント発火、アクション実行 |
|
|
--- |
テキスト |
--- |
ラベル付き線 |
関係性の説明(遷移、含む、表示など) |
--o |
白丸終端 |
関連付け(弱い結合) |
|
|
--\* |
黒丸終端 |
集約関係(強い結合) |
|
|
2.2 画面方向
2.3 レイアウトリソース
- レイアウトXMLファイル名:
- Fragmentの使用:
- カスタムビューの使用:
2.4 デバイス対応
- 標準サイズ(5-6インチ):
- 大画面端末(7インチ以上):
- 低解像度端末:
- 高解像度端末:
3. UI構成要素
3.1 コンポーネント一覧
No |
コンポーネントID |
種類 |
表示テキスト |
表示条件 |
レイアウト位置 |
|
|
|
|
|
|
3.2 入力項目定義
No |
項目ID |
表示名 |
入力種類 |
入力制限 |
最大長 |
必須 |
初期値 |
IMEタイプ |
|
|
|
|
|
|
|
|
|
3.3 入力検証ルール
3.3.1 テキスト入力
- 入力可能文字:
- パターン検証:
- フォーカス喪失時検証:
- 送信時検証:
3.3.2 数値入力
3.3.3 選択入力
- 選択肢表示方法:
- 選択肢データソース:
- 複数選択可否:
- デフォルト選択:
3.4 リスト表示定義
3.4.1 リスト構成
- 使用コンポーネント:
- アイテム表示件数:
- スクロール方式:
- ページング有無:
3.4.2 リストアイテム
3.5 アニメーション・トランジション
- 画面表示時アニメーション:
- 画面終了時アニメーション:
- コンポーネント表示アニメーション:
- 状態変化時アニメーション:
4. アクション定義
4.1 ユーザーアクション一覧
アクションID |
トリガー |
対象コンポーネント |
表示条件 |
有効条件 |
|
|
|
|
|
4.2 クリックアクション定義
4.2.1 ボタン1
- onClick実装:
- 処理内容: 1. 2. 3.
- 遷移先:
- 遷移パラメータ:
4.3 タッチアクション定義
4.3.1 スワイプ
- onSwipe実装:
- 方向:
- 処理内容:
- 制約条件:
4.3.2 長押し
- onLongClick実装:
- 処理内容:
- 表示アクション:
4.4 システムアクション定義
4.4.1 バックキー
4.4.2 メニューキー
5. データバインディング
5.1 データモデル
- モデルクラス名:
- 主要属性:
- データバインディング利用:
5.2 バインディング方式
- 単方向/双方向:
- 更新タイミング:
- カスタムバインディング:
5.3 LiveData定義
- LiveData変数:
- 監視対象:
- 監視イベント:
6. 通信・データ連携
6.1 API連携
[ヘッダ情報]
[パラメータ形式]
[リクエスト形式]
6.2 レスポンス仕様
[レスポンス形式]
[エラーレスポンス形式]
6.3 ローカルデータ
- SharedPreferences利用:
- Room DB利用:
- テーブル定義:
- キャッシュ戦略:
7. エラー・メッセージ定義
7.1 検証エラー
7.2 システムエラー
7.3 通信エラー
7.4 メッセージ表示方式
- Toast利用シーン:
- Snackbar利用シーン:
- AlertDialog利用シーン:
- カスタムビュー利用シーン:
8. パフォーマンス最適化
8.1 UI描画最適化
- ViewHolder利用:
- レイアウト階層:
- 描画キャッシュ:
8.2 メモリ管理
- 大きなビットマップ処理:
- リークチェック:
- メモリ上限:
8.3 バッテリー効率
- バックグラウンド処理:
- 位置情報利用:
- センサー利用:
9. セキュリティ要件
9.1 データセキュリティ
9.2 入力値検証
- インジェクション対策:
- 入力サニタイズ:
- 実装場所:
9.3 アクセス制御
10. アクセシビリティ対応
10.1 コンテンツ記述
- ContentDescription設定:
- フォーカス順序:
- 色コントラスト:
10.2 入力補助
- 音声入力対応:
- ジェスチャー対応:
- キーボード操作対応:
10.3 TalkBack対応
- スクリーンリーダー対応:
- カスタム読み上げテキスト:
11. 画面遷移・状態管理
11.1 遷移元画面
11.2 遷移先画面
11.3 状態保存
- 保存対象データ:
- onSaveInstanceState実装:
- プロセス再生成対応:
11.4 ライフサイクル処理
- onCreate:
- onResume:
- onPause:
- onDestroy: