1k-feature-guides について
OneKey アプリの機能を拡張するための開発ガイドをまとめたスキルです。ブロックチェーン、WebSocket イベント、プッシュ通知、ページとルートを、手順や関連ファイルとともに説明します。
主な機能
- 01ブロックチェーン追加ガイド
- 02WebSocket イベント連携手順
- 03プッシュ通知のモードと処理
- 04ページ種別とルート設定
- 05主要ファイルと参考実装
活用シーン
- 01OneKey にブロックチェーンを追加
- 02WebSocket イベントを実装して応答
- 03通知からの画面遷移やリンク表示を設定
- 04ページを追加してルートを設定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ onekeyhq/ app-monorepo --skill 1k-feature-guidesインストール後、Claude Code で/1k-feature-guidesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/rules/adding-chains.mdadding-socket-events.mdnotification-system.mdpage-and-route.md詳細
機能開発ガイド
OneKey アプリの機能を拡張するための包括的なガイドです。
クイックリファレンス
| 機能 | ガイド | 主なファイル |
|---|---|---|
| ブロックチェーンのチェーンを追加 | adding-chains.md | packages/core/src/chains/ |
| WebSocket イベントを追加 | adding-socket-events.md | packages/shared/types/socket.ts |
| プッシュ通知 | notification-system.md | packages/kit-bg/src/services/ServiceNotification/ |
| ページとルート | page-and-route.md | packages/kit/src/routes/ |
新しいチェーンの追加
参照先:references/rules/adding-chains.md
主な手順:
packages/core/src/chains/mychain/にチェーンのコアロジックを実装しますpackages/shared/src/config/chains/にチェーンの設定を追加します- チェーン固有の機能に合わせて UI コンポーネントを更新します
- 包括的なテストを追加します
参考実装:
- EVM チェーン:
packages/core/src/chains/evm/ - Bitcoin:
packages/core/src/chains/btc/ - Solana:
packages/core/src/chains/sol/
WebSocket イベントの追加
参照先:references/rules/adding-socket-events.md
主な手順:
EAppSocketEventNamesenum にイベント名を定義しますmsgId: stringを含むペイロード型のインターフェースを定義しますPushProviderWebSocket.initWebSocket()にイベントハンドラーを追加しますackNotificationMessageを使って必ずメッセージを確認応答します
this.socket.on(EAppSocketEventNames.myEvent, (payload: IMyPayload) => {
void this.backgroundApi.serviceNotification.ackNotificationMessage({
msgId: payload.msgId,
action: ENotificationPushMessageAckAction.arrived,
});
void this.backgroundApi.someService.handleEvent(payload);
});
通知システム
参照先:references/rules/notification-system.md
通知モード:
| モード | アクション |
|---|---|
| 1 (page) | 指定したページに移動 |
| 2 (dialog) | ダイアログを表示 |
| 3 (openInBrowser) | 外部ブラウザーで URL を開く |
| 4 (openInApp) | アプリ内ブラウザーで URL を開く |
| 5 (openInDapp) | DApp ブラウザーで URL を開く |
主なファイル:
- サービス:
packages/kit-bg/src/services/ServiceNotification/ServiceNotification.ts - ユーティリティ:
packages/shared/src/utils/notificationsUtils.ts - 型:
packages/shared/types/notification.ts
ページとルート
参照先:references/rules/page-and-route.md
ページの種類:
| 種類 | 説明 |
|---|---|
modal | モーダルオーバーレイページ |
stack | タブルートページ |
onboarding | 全画面のオンボーディングページ |
ルート設定の場所:
- モーダルルート:
packages/kit/src/routes/Modal/router.tsx - タブルート:
packages/kit/src/routes/Tab/router.ts - オンボーディング:
packages/kit/src/views/Onboardingv2/router/index.tsx
重要:
- ⚠️ ページを削除しないでください - 非推奨のルートにはリダイレクトパターンを使用します
- ⚠️ ルートパスはアプリケーション全体で一意である必要があります
- ⚠️
navigation.navigateでは必ずpop: trueを使用してください
関連スキル
/1k-coding-patterns- React と TypeScript のベストプラクティス/1k-architecture- プロジェクト構成とインポートのルール/1k-state-management- Jotai atom のパターン
コメント
Markdown 対応