ガイド
Capacitor で Capacitor+ Core を使う方法
Capacitor+ (@capacitor-plus) パッケージの使用
Capacitor+ は、常に同期される自動化されたフォークです: Capacitor によるメンテナンス Capgo. 公式の Capacitor パッケージのドロップインリプレイスメントとして機能しますが、大きな利点が1つあります: コミュニティによるPRや修正がより迅速にマージされること.
Capacitor+ が存在する理由
Ionicチームは独自の優先順位とリリーススケジュールに基づいて Capacitor をメンテナンスしています。そのため、バグ修正や改善、新機能といったコミュニティからの貢献がマージされるまで、数ヶ月から数年かかることもあります。中には、結局マージされないものさえあります。
Capacitor+ は、以下の方法でこの問題を解決します:
- フォークからのPRをマージ - アップストリームのキューで停滞している価値のあるPRを積極的にマージします
- 継続的な同期 - アップストリームの Capacitor からのすべての変更を自動的にプルし、テストおよび検証します
- 迅速なリリース - CIを通過した変更は、自動的に npm へ公開されます
@capacitor-plusスコープ - コミュニティファースト - あなたの貢献は重視され、優先されます
- セキュリティレビュー済み - すべての変更をAIが解析し、セキュリティ脆弱性、破壊的変更、安定性リスクを評価します
利用可能なパッケージ
| パッケージ | 説明 |
|---|---|
@capacitor-plus/core |
コアランタイムライブラリ |
@capacitor-plus/cli |
コマンドラインインターフェース |
@capacitor-plus/android |
Androidランタイム |
@capacitor-plus/ios |
iOSランタイム |
インストール
新規プロジェクト
新規プロジェクトの場合は、公式パッケージの代わりに Capacitor+ パッケージを使用するだけです:
npm install @capacitor-plus/core @capacitor-plus/cli
npm install @capacitor-plus/android # for Android
npm install @capacitor-plus/ios # for iOS
次に、プロジェクトを初期化します:
npx cap init
npx cap add android
npx cap add ios
公式 Capacitor からの移行
既存のプロジェクトを公式の Capacitor から Capacitor+ へ移行する場合:
# Remove official packages
npm uninstall @capacitor/core @capacitor/cli @capacitor/android @capacitor/ios
# Install Capacitor+ packages
npm install @capacitor-plus/core @capacitor-plus/cli
npm install @capacitor-plus/android # if using Android
npm install @capacitor-plus/ios # if using iOS
Capacitor+ は API が同じドロップインリプレイスメントであるため、code の変更は不要です。import 文もそのまま利用できます:
// These imports work the same with Capacitor+
import { Capacitor } from '@capacitor/core';
import { registerPlugin } from '@capacitor/core';
仕組み
┌─────────────────────┐ ┌──────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ ionic-team/ │ │ CI/CD │ │ Claude Code │ │ npm publish │
│ capacitor │────▶│ Pipeline │────▶│ Security Review │────▶│ @capacitor-plus│
│ (upstream) │ │ (daily sync) │ │ (AI analysis) │ │ packages │
└─────────────────────┘ └──────────────────┘ └──────────────────┘ └─────────────────┘
- デイリー同期: GitHub Action が最新の変更を取得します
ionic-team/capacitor - PRの作成: 変更内容はプルリクエストとして〜へ提案されます
plusブランチ - CI検証: フルテストスイートを実行 (lint, ユニットテスト, iOSビルド, Androidビルド)
- ClaudeによるCodeレビュー: AIによる包括的なセキュリティ分析で以下をチェック:
- セキュリティ脆弱性 (インジェクション, XSSなど)
- 破壊的なAPI変更
- クラッシュのリスクと安定性の問題
- データの整合性とプライバシーに関する懸念
- 悪意のあるcodeパターン
- 自動マージ: CIに合格し、かつClaudeが承認した場合のみ (問題なし)
- 自動公開: npm に新しいバージョンが公開されました。バージョン:
@capacitor-plus/*
セキュリティレビュー
アップストリーム同期ごとに以下を分析します:
| 確認 | 説明 |
|---|---|
| セキュリティ | コマンドインジェクション、XSS、パストラバーサル、ハードコードされたシークレットなど |
| 破壊的変更 | 削除・名称変更されたAPI、シグネチャの変更、設定フォーマットの変更 |
| 安定性 | Null参照、未処理の例外、レースコンディション、メモリリーク |
| データの安全性 | データの紛失、プライバシー侵害、不適切なストレージ管理 |
| Code の整合性 | 難読化された code、不審なネットワーク通信、バックドア |
問題が検出された場合、PRにはフラグが立てられ、手動レビューが必要になります。自動マージは行われません。
PRをマージしてほしいですか?
公式の Capacitor リポジトリでPRが止まっていませんか? Capacitor+ へ取り込む方法は以下の通りです:
- Issueを作成する の Capacitor+ リポジトリ アップストリームのPRへのリンクを貼る
- または、直接PRを提出する への
plusブランチ - チームがレビューとCIを実行し、合格すればマージします
これにより、あなたも他の開発者も、アップストリームのリリースサイクルを待たずに成果をすぐに活用できます。
メリット
- 保留中のPRを今すぐ取得: アップストリームで待機中のコミュニティによる修正や機能がマージされます
- 常に最新の状態を保つ: CIを通過したアップストリームの修正を即座に取得できます
- セキュリティを最優先: すべての変更に対して脆弱性と安定性のリスクをレビューします
- 検証済みのリリース: CIテストとAIセキュリティレビューの両方に合格した変更のみが公開されます
- そのまま置き換え可能: Capacitor と同じ API で、パッケージスコープが違うだけです
- あなたの声をお聞かせください: 自分でPRを送ったり、特定のアップストリームPRのマージをリクエストできます
例: プラグインで Capacitor+ を使う
すべての公式 Capacitor プラグインは Capacitor+ とシームレスに動作します:
import { Capacitor } from '@capacitor/core';
import { Camera, CameraResultType } from '@capacitor/camera';
import { Geolocation } from '@capacitor/geolocation';
// Everything works exactly the same
const platform = Capacitor.getPlatform();
const photo = await Camera.getPhoto({
resultType: CameraResultType.Uri
});
const position = await Geolocation.getCurrentPosition();
Capgo プラグインも Capacitor+ で問題なく動作します:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
import { ScreenOrientation } from '@capgo/capacitor-screen-orientation';
// Use Capgo plugins with Capacitor+
await CapacitorUpdater.notifyAppReady();
await ScreenOrientation.lock({ orientation: 'portrait' });
これで完了です!コミュニティの改善がより早くマージされた、アップデートの速い Capacitor が手に入りました。公式リリースサイクルを待たずに、バグ修正や新機能をアプリに取り込めます。
「Capacitor+ (@capacitor-plus) パッケージの使用」から続ける
使用している場合 Capacitor+ (@capacitor-plus) パッケージの使用 ネイティブプラグインの作業を計画するには、次と連携してください: Capacitor+ Capacitor+ の実装詳細については、 Capgo プラグインディレクトリ Capgo プラグインディレクトリのプロダクトワークフローについては、 Capgo による Capacitor プラグイン Capgo による Capacitor プラグインの実装詳細については、 プラグインの追加または更新 プラグインの追加または更新における実装詳細については、および Ionic Enterprise プラグインの代替案 Ionic Enterprise プラグインの代替案におけるプロダクトワークフローについては。