android-development
KotlinによるAndroid開発のガイドラインを提供するスキルです。クリーンアーキテクチャ・MVIパターン・Material Designを基盤に、堅牢なモバイルアプリケーションを構築するためのベストプラクティスを網羅しています。
description の原文を見る
Android development guidelines for Kotlin with clean architecture, MVI pattern, Material Design, and best practices for building robust mobile applications
SKILL.md 本文
Android開発のベストプラクティス
Kotlinの一般的なガイドライン
基本原則
- すべてのコードとドキュメントに英語を使用する
- 変数と関数の型は常に明示的に宣言する
any型を避ける。必要なカスタム型を作成する- 関数本体内の空行を削除する
命名規則
- PascalCase: クラス、インターフェース、列挙型
- camelCase: 変数、関数、メソッド
- underscores_case: ファイルとディレクトリ
- UPPERCASE: 環境変数、定数
- マジックナンバーを避ける。代わりに定数を定義する
- 関数は動作を表す動詞で始める
- ブール変数は
isLoading、hasError、canDeleteといったプレフィックスを使用する
関数設計
- 関数は20命令以下で、単一責任を持たせる
- 動詞ベースの命名を使用する
- ブール戻り値には
is、has、canというプレフィックスを付ける - void戻り値には
execute、save、sendというプレフィックスを付ける - 早期リターン、ユーティリティ抽出、高階関数によってネストを減らす
- nullチェックの代わりにデフォルトパラメータを使用する
- パラメータをオブジェクトに統合する(RO-ROパターン)
データとクラス
- データ構造にはデータクラスを使用する
- プリミティブをコンポジット型でカプセル化し、内部で検証する
- イミュータビリティを優先する。変わらない値には
valを使用する - SOLIDの原則に従う。継承よりコンポジションを優先する
- クラスは200命令以下、10個以下の公開メソッド、10個以下のプロパティに保つ
例外処理
- 例外は予期しないエラーのためだけに予約する
- 例外をキャッチするのは予想される問題を修正または文脈を追加する場合のみ
- ドメインエラーにはカスタム例外型を作成する
Androidアーキテクチャ
クリーンアーキテクチャ
- レイヤー分離を明確にしたクリーンアーキテクチャを実装する
- データの永続化とキャッシングにはリポジトリパターンを使用する
- ビジネスロジックをUseCasesまたはInteractorsに保つ
- UI、ドメイン、データレイヤー間の関心事を分離する
プロジェクト構成
app/
├── data/ # Data sources, repositories, models
├── domain/ # Use cases, domain models, interfaces
├── presentation/ # UI components, ViewModels, state
└── di/ # Dependency injection modules
MVIパターン
- 状態とイベント管理にMVIパターンを導入する
- ViewModelはUI状態を単一の不変状態オブジェクトとして管理する
- UIコンポーネントは状態を観察してレンダリングする
- ユーザーのインテント/イベントを単一のエントリーポイントで処理する
- 副作用は予測可能で追跡可能に保つ
UI開発
ナビゲーション
- フラグメントとアクティビティのルーティングにNavigation Componentを使用する
- アプリフローのナビゲーショングラフを定義する
- Navigation Componentを通じてディープリンクを処理する
- タイプセーフなナビゲーション引数にはsafe argsを実装する
MainActivityの構成
- MainActivityはプライマリナビゲーションを管理する
- メインの宛先(Home、Profile、Settings等)にはBottomNavigationViewを使用する
- 設定変更を通じてナビゲーション状態を適切に処理する
View バインディングと状態
- タイプセーフなビューアクセスにはViewBindingを使用する
- UI状態管理にはFlowまたはLiveDataを使用する
- ライフサイクル認識の方法で状態変更を観察する
- ローディング、エラー、成功状態を一貫して処理する
UIフレームワークの推奨
- Jetpack Composeが特に必要な場合を除き、XMLレイアウトとFragmentsを優先する
- 複雑なレイアウトにはConstraintLayoutを使用する
- Material 3デザインガイドラインを適用する
- 異なる画面サイズに対応したレスポンシブデザインプラクティスに従う
認証フロー
認証スクリーンを適切に構成する:
- スプラッシュスクリーン - アプリ初回起動
- ログインスクリーン - ユーザー認証
- 登録スクリーン - 新規ユーザー登録
- パスワード忘却スクリーン - パスワード回復
- メール確認スクリーン - メール検証
テスト
ユニットテスト
- Arrange-Act-Assert規則に従う
- ViewModel、UseCase、Repositoryをテストする
- 依存性にはテストダブルを使用する
- ビジネスロジックの優れたカバレッジを達成する
UIテスト
- UIコンポーネント向けにウィジェットテストを実装する
- APIモジュール向けに統合テストを記述する
- ナビゲーションフローをテストする
- インストルメンテーションテストにはEspressoを使用する
ベストプラクティス
ライフサイクル管理
- ライフサイクルイベントを適切に処理する
- 不適切なライフサイクル処理からのメモリリークを回避する
- ライフサイクル認識コンポーネントを使用する
バックグラウンド処理
- 非同期操作にはCoroutinesを使用する
- キャンセルを適切に処理する
- 遅延可能なバックグラウンド作業にはWorkManagerを使用する
依存性注入
- 依存性注入にHiltまたはDaggerを使用する
- 依存性を適切にスコープする
- DI設定を整理された状態に保つ
パフォーマンス
- メインスレッド上での作業を避ける
- RecyclerViewをDiffUtilで最適化する
- 重いリソースにはレイジーローディングを使用する
- メモリ使用量をプロファイリングして最適化する
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- mindrally
- リポジトリ
- mindrally/skills
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/mindrally/skills / ライセンス: Apache-2.0
関連スキル
nano-banana-2
inference.sh CLIを通じてGoogle Gemini 3.1 Flash Image Preview(Nano Banana 2)で画像を生成します。テキストから画像を生成する機能、画像編集、最大14枚の複数画像入力、Google Searchグラウンディング機能に対応しています。トリガーワード:「nano banana 2」「nanobanana 2」「gemini 3.1 flash image」「gemini 3 1 flash image preview」「google image generation」
octocode-slides
洗練されたマルチファイル形式のHTMLプレゼンテーションを生成します。6段階のフロー(概要 → リサーチ → アウトライン → デザイン → 実装 → レビュー)で構成されています。各スライドは独立したHTMLファイルとなり、iframeで読み込まれます。「スライドを作成してほしい」「プレゼンテーションを作ってほしい」「HTMLスライドを生成してほしい」「デックを構築してほしい」といった依頼や、ノート・ドキュメント・コードを洗練されたプレゼンテーションに変換する際に使用できます。
gpt-image2-ppt
OpenAIのgpt-image-2を使用して、視覚的に優れたPPTスライドを生成します。Spatial Glass、Tech Blue、Editorial Monoなど10種類のキュレーション済みスタイルに対応し、ユーザーが提供したPPTXファイルを模倣するテンプレートクローンモードも搭載しています。HTMLビューアと16:9形式のPPTXファイルを出力します。プレゼンテーション、スライド、ピッチデック、投資家向けPPT、雑誌風PPTの作成依頼などで活用してください。
nano-banana
Nano Banana PRO(Gemini 3 Pro Image)およびNano Banana(Gemini 2.5 Flash Image)を使用したAI画像生成機能です。以下の場合に活用できます:(1)テキストプロンプトからの画像生成、(2)既存画像の編集、(3)インフォグラフィックス、ロゴ、商品写真、ステッカーなどのプロフェッショナルなビジュアルアセット制作、(4)複数画像での人物キャラクターの一貫性保持、(5)正確なテキスト描画を含む画像生成、(6)AI生成ビジュアルが必要なあらゆるタスク。「画像を生成」「画像を作成」「写真を作る」「ロゴをデザイン」「インフォグラフィックスを作成」「AI画像」「nano banana」またはその他の画像生成リクエストをトリガーとして機能します。
oiloil-ui-ux-guide
モダンでクリーンなUI/UXガイダンス・レビュースキルです。新機能や既存システム(Webアプリ)に対して、実行可能なUI/UX改善提案、デザイン原則、デザインレビューチェックリストが必要な場合に活用できます。CRAP(コントラスト・反復・配置・近接)をベースに、タスクファーストなUX、情報設計、フィードバック・システムステータス、一貫性、affordances、エラー防止・復旧、認知負荷を重視します。モダンミニマルスタイル(クリーン・余白・タイポグラフィ主導)を強制し、不要なテキストを削減、アイコンとしての絵文字を禁止し、統一されたアイコンセットから直感的で洗練されたアイコンを推奨します。
axiom-hig-ref
Apple Human Interface Guidelines リファレンス — 色(セマンティックカラー、カスタムカラー、パターン)、背景(マテリアル階層、ダイナミック背景)、タイポグラフィ(標準スタイル、カスタムフォント、Dynamic Type)、SF Symbols(レンダリングモード、色、多言語対応)、ダークモード、アクセシビリティ、プラットフォーム固有の考慮事項を網羅したガイドラインです。