Capacitor プラグインは、Webテクノロジーとネイティブデバイス機能を接続し、クロスプラットフォームアプリ開発を可能にします。このガイドは以下を支援します:
- 環境のセットアップ: Nodejs、Xcode、Android Studioなどのツールが必要不可欠です
- コード規約の遵守: 一貫した命名規則とエラー処理を含むTypeScript、Swift、Kotlinの使用
- 徹底的なテスト: 信頼性を確保するためのJavaScript、iOS、Androidのユニットテストの作成
- 明確なドキュメント作成: 簡単に採用できるようにJSDocとREADMEファイルを使用
- プルリクエストの提出: 高品質なコード、テスト、ドキュメントを確保してから貢献
オープンソースの完全ガイド - 貢献方法
[[HTML_TAG]][[HTML_TAG]]
開発環境のセットアップ
適切な開発環境の構築は、効率的なプラグイン開発の鍵となります。よく準備された環境により、スムーズなコーディング、テスト、プラグインのデプロイが可能になります。
必要なツールとスキル
開始する前に、以下のツールがインストールされていることを確認してください:
カテゴリー | 要件 |
---|---|
コアツール | Nodejs (LTS)、npm 6+、Git |
IDE/エディタ | Visual Studio Code または好みのエディタ |
iOS開発 | Xcode、SwiftLint、CocoaPods |
Android開発 | Android Studio、Android SDK、JDK |
また、Web開発のためのTypeScriptと、ネイティブ開発タスクのためのSwift(iOS用)またはJava/Kotlin(Android用)に精通している必要があります [1][2]
モノレポのセットアップ
Capacitor プラグインエコシステムは、モノレポ構造に依存しています。このアプローチにより、最初からコミュニティ標準に沿った作業が保証されます。
-
リポジトリのフォークとクローン
GitHubでCapacitorプラグインリポジトリをフォークすることから始めます。その後、フォークしたリポジトリをクローンします:[[CODE_BLOCK]]
-
依存関係のインストールとビルド
必要なものすべてをインストールしてプラグインをビルドするために、以下のコマンドを実行します:[[CODE_BLOCK]]
-
バージョン管理のセットアップ
変更にはフィーチャーブランチを使用し、フォークをアップストリームリポジトリと同期させておきます
ネイティブプラットフォームの準備
クロスプラットフォーム開発のために、iOSとAndroid両方の環境を設定する必要があります。
iOS向け:
-
Mac App StoreからXcodeをダウンロード
-
以下を使用してコマンドラインツールをインストール:
[[CODE_BLOCK]]
-
以下でCocoaPodsをインストール:
[[CODE_BLOCK]]
-
Apple Developer アカウントと必要な証明書を設定
-
コード品質維持のためにSwiftLintを使用(任意)
Android向け:
- 最新のSDKと仮想デバイスを含むAndroid Studioをインストール
- JDKがインストールされていることを確認
- Android Studio内でAndroid SDKを適切に設定
これらのプラットフォームのセットアップが完了したら、確立されたコーディング規約に従ってプラグイン開発に着手できます。
コード規約ガイド
開発環境のセットアップが完了したら、メンテナンスと使用が容易なプラグインを構築するために、これらのガイドラインに従ってください。
スタイルガイドの遵守
Capacitorプラグインエコシステムは、ESLint、Prettier、SwiftLintなどのツールを使用して厳格なコーディング規約を適用しています。必要なフォーマットの概要は以下の通りです:
コンポーネント | フォーマット |
---|---|
変数 | deviceInfo (キャメルケース) |
クラス | BatteryManager (パスカルケース) |
メソッド | getLanguageCode() (キャメルケース) |
定数 | MAX_RETRY_COUNT (スネークケース) |
プラグインは、より良い型安全性とES6+の機能(例:async/await
)のためにTypeScriptを使用する必要があります。また、iOS(Swift)とAndroid(Kotlin)のプラットフォーム固有のコーディング規約に従ってください。
エラーと型の管理
クロスプラットフォームの互換性のために、一貫したエラー処理が重要です。例:
[[CODE_BLOCK]]
型安全性のために:
- 特定のユースケースに合わせた集中的なインターフェースを使用する
- プラットフォーム固有のバリエーションにユニオン型を適用する
- 実行時に型を検証するための型ガードを実装する [1]
コードドキュメント
良いドキュメントは、プラグインをアクセスしやすく使いやすくするための鍵です。以下のプラクティスに従ってください:
- APIドキュメント:
@capacitor/docgen
で動作するJSDocコメントを書く。例:
[[CODE_BLOCK]]
- README構造: インストール手順、設定手順、プラットフォーム固有の要件、使用例、詳細なAPIリファレンスなどの重要な情報を含める
適切に書かれたドキュメントにより、プラグインの採用が容易になり、Capacitorコミュニティに貢献することができます。
sbb-itb-f9944d2
プラグインテストガイド
Capacitorプラグインのテストには、機能性と信頼性を確保するために重要な領域に焦点を当てる必要があります。
ネイティブブリッジテスト
ネイティブブリッジテストは、JavaScriptとネイティブコード間の適切な通信を確保します。各プラットフォームに合わせたテストフレームワークでテスト環境をセットアップしてください。
JavaScriptサイドのJest単体テストの例:
[[CODE_BLOCK]]
ネイティブサイドのテストには、iOSではXCTest、AndroidではJUnitを使用します。Androidの例:
[[CODE_BLOCK]]
コアブリッジ機能が期待通りに動作することを確認したら、完全なユーザーワークフローのテストに移ります。
完全なプラグインテスト
プラグインが異なるシナリオで正しく動作することを確認するため、様々なカテゴリーをテストします:
テストカテゴリー | 重要な焦点領域 |
---|---|
統合テスト | クロスプラットフォーム機能 |
パフォーマンステスト | リソース使用量とレスポンスタイム |
セキュリティテスト | データ処理とパーミッションチェック |
複雑な機能を持つプラグインの場合、実際のユーザーシナリオをシミュレートします。例えば、DeviceInfoプラグインをテストする場合は以下を確認します:
- 異なるネットワーク状態でのアップロードの成功
- 正確な進行状況のレポート
- 大きなファイル転送時のメモリ使用量
CapgoでのOTAテスト
Capgoのオープンソースツールを使用すると、更新を素早くデプロイしてテストできます。使用方法:
- dev、staging、productionなどの更新チャンネルをセットアップする
- CI/CDツールでデプロイを自動化する
- 更新を即時にプッシュする
- Capgoダッシュボードでパフォーマンスと問題を監視する
段階的なロールアウトでは、Capgoを使用して更新を少数のユーザーに制限できます。例えば、24時間ごとにユーザーの25%に新バージョンをロールアウトできます:
[[CODE_BLOCK]]
この段階的なアプローチにより、完全リリース前にコミュニティのフィードバックを活用して早期に問題を特定できます。
プルリクエストのプロセス
変更を十分にテストしたら、以下の手順に従ってプルリクエストを提出してください:
PRの提出チェックリスト
提出前に、以下の主要な領域をカバーしていることを確認してください:
カテゴリー | 確認事項 |
---|---|
コード品質 | - Swift/Kotlin実装がWeb APIと整合していることを確認 |
テスト | - 新機能に対するユニットテストを追加 |