メインコンテンツにジャンプ

Capacitor プラグインコントリビューションガイド

Capacitor プラグインの効果的なコントリビューションについて、セットアップ、コーディングスタンダード、テスト、ドキュメントの包括的なガイドを学びましょう。

マーティン・ドナディュー

マーティン・ドナディュー

コンテンツマーケター

Capacitor プラグインコントリビューションガイド

Capacitor プラグインは、ウェブテクノロジーとネイティブデバイスの機能を接続することで、モバイルアプリの開発を可能にします。 クロスプラットフォームアプリ開発このガイドは、次のことを助けています:

  • 環境をセットアップする: 以下のようなツールを使用します。 Node.js, Xcode, Android Studio は不可欠です。
  • Follow Code Standards: TypeScript, Swift, Kotlin 一貫性を持った命名規則とエラー処理を使用してください。
  • テストを徹底的に行う: JavaScript、iOS、Android用のユニットテストを実行して信頼性を確保する
  • 明確にドキュメントする: JSDocとREADMEファイルを使用して容易に採用する
  • プルリクエストを提出する: 高品質のcode、テスト、ドキュメントを確保して貢献する

オープンソースへの完全ガイド - コントリビュートする方法

開発環境の設定

効率的なプラグイン開発のために、適切な開発環境の設定は非常に重要です。

開発環境の準備が整っていれば、プラグインの開発、テスト、デプロイがスムーズに進みます。

必要なツールとスキル

開発を始める前に、以下のツールがインストールされていることを確認してください。カテゴリ
要件Node.js (LTS), npm 6+, Git
Node.js (LTS), __CAPGO_KEEP_0__ 6+, GitVisual Studio Code Visual Studio __CAPGO_KEEP_0__
またはあなたの好きなエディターXcode, SwiftLint, CocoaPods
AndroidAndroid Studio, Android SDK, JDK

ウェブ開発ではTypeScriptに慣れており、iOS用にSwiftまたはAndroid用にJava/Kotlinに慣れていることが必要です。 [1][2].

Monorepoの設定

The Capacitor プラグイン monorepo構造がプラグインのエコシステムの基盤です。このアプローチにより、コミュニティの標準に従った作業が最初から始まります。

  1. リポジトリをフォークしてクローンする
    まず、GitHubでCapacitor プラグインのリポジトリをフォークしてください。次に、フォークしたリポジトリをクローンしてください:

    git clone https://github.com/your-username/capacitor-plugins.git
    cd capacitor-plugins
    npm install
  2. 依存関係をインストールしてビルド
    Capgoをインストールしてプラグインをビルドするには、以下のコマンドを実行してください。

    npm run build
  3. バージョン管理の設定
    変更を管理するには、機能ブランチを使用し、上流リポジトリとフォークを同期してください。

ネイティブプラットフォームの準備

クロスプラットフォーム開発を行うには、iOSとAndroidの環境を両方とも設定する必要があります。

iOS:

  • Mac App StoreからXcodeをダウンロードしてください。

  • 以下のコマンドを使用して、コマンドラインツールをインストールしてください。

    xcode-select --install
  • 以下のコマンドを使用して、CocoaPodsをインストールしてください。

    sudo gem install cocoapods
  • Apple Developerアカウントと必要な証明書を設定してください。

  • SwiftLint (任意)を使用して、codeの品質を維持してください。

For Android:

  • Android Studioと最新のSDK、および仮想デバイスをインストールしてください。
  • JDKがインストールされていることを確認してください。
  • Android Studio内でSDKを適切に設定してください。

これらのプラットフォームを設定した後、既存の開発慣行に従い、プラグイン開発に進む準備が整います。

Code Standards Guide

開発環境が整った後は、これらのガイドラインに従って、維持しやすく使いやすいプラグインを構築してください。

Style Guide Compliance

The Capacitor plugin ecosystem 厳格なコーディングスタンダードをツールとして使用することで、 ESLint, Prettier、SwiftLintを含む。ここでは、必要なフォーマットの簡単な概要を紹介します。

コンポーネントフォーマット
変数deviceInfo (キャメルケース)
クラスBatteryManager (パスカルケース)
メソッドgetLanguageCode() (キャメルケース)
定数MAX_RETRY_COUNT (スネークケース)

プラグインでは、TypeScriptを使用して型安全性とES6+の機能を利用することをお勧めします。 async/awaitさらに、Swift (iOS) と Kotlin (Android) に特有のコーディング規約に従ってください。

エラーと型の管理

クロスプラットフォーム互換性のために一貫したエラーハンドリングが重要です。

async checkPermissions(): Promise<PermissionStatus> {
  try {
    const result = await this.implementation.checkPermissions();
    return result;
  } catch (error) {
    throw new Error(`Permission check failed: ${error.message}`);
  }
}

型安全性のための例

  • 特定の用途に特化したインターフェイスを使用します。
  • プラットフォーム固有のバリエーションに対してユニオン型を適用します。

Code ドキュメント

プラグインが利用しやすくアクセスしやすいものになるように、ドキュメント作成に重点を置くことが重要です。

  1. API ドキュメント: JSDoc コメントを使用して、 @capacitor/docgenのドキュメントを生成します。例えば、
/**
 * @description Get the device's current battery level
 * @returns Promise with the battery level percentage
 */
async getBatteryLevel(): Promise<{ level: number }>;
  1. README構造: インストール手順、設定方法、プラットフォームごとの要件、使用例、および API の詳細なリファレンスを含めるようにしてください。

Well-written documentation ensures that your plugin is easy to adopt and contributes to the broader Capacitor community.

READMEを書き込むことで、プラグインを簡単に取り入れ、より広い __CAPGO_KEEP_0__ コミュニティに貢献することができます。

sbb-itb-f9944d2

Testing Capacitor plugins involves focusing on a few critical areas to ensure smooth functionality and reliability.

__CAPGO_KEEP_0__ プラグインのテストには、機能性と信頼性を確保するために、重要な幾つかの領域に焦点を当てることが含まれます。

Native bridge testing ensures proper communication between JavaScript and native code. To get started, set up your testing environment with frameworks tailored to each platform.

ネイティブブリッジテストは、JavaScriptとネイティブ __CAPGO_KEEP_0__ の間の適切なコミュニケーションを確保することを目的としています。始めるには、各プラットフォームに特化したフレームワークを使用してテスト環境を設定する必要があります。 ここでは、 Jest

// Example of a Jest unit test for the JavaScript bridge
describe('DeviceInfo Plugin', () => {
  test('getBatteryLevel returns valid percentage', async () => {
    const result = await DeviceInfo.getBatteryLevel();
    expect(result.level).toBeGreaterThanOrEqual(0);
    expect(result.level).toBeLessThanOrEqual(100);
  });
});

JavaScript側のユニットテストの例です:「For Androidの場合、XCTestを使用してiOS、JUnitを使用してAndroidをテストします。以下はAndroidの例です:」

@Test
fun testBatteryLevel() {
    val plugin = DeviceInfo()
    val result = plugin.getBatteryLevel()
    assertTrue(result.level in 0..100)
}

機能の基本ブリッジが予想どおりに動作することを確認したら、ユーザー ワークフロー全体のテストに進みます。

プラグインテスト

さまざまなシナリオでプラグインがうまく動作することを確認するには、さまざまなカテゴリをテストする必要があります。

テスト カテゴリ主な焦点領域
統合テストクロスプラットフォーム機能
パフォーマンス テストリソース使用量とレスポンス時間
セキュリティ テストデータ処理と権限チェック

複雑な機能を持つプラグインの場合、実世界のユーザー シナリオをシミュレートします。例えば、デバイス情報プラグインをテストしている場合、次の点を確認します。

  • 異なるネットワーク条件下での成功アップロード
  • 正確な進行状況報告
  • 大規模ファイル転送時のメモリ使用量

OTAテスト用に Capgo

Capgoライブアップデートダッシュボードインターフェイス

Capgoのオープンソースツールにより、迅速なアップデートのデプロイとテストが容易になります。以下は使用方法です。

  1. 設定 アップデートチャンネル 開発、ステージング、またはプロダクションなどのように
  2. CI/CDツールを使用してデプロイを自動化する
  3. 即時アップデート
  4. パフォーマンスと問題の監視は Capgo ダッシュボード.

Capgoでは、フェーズドロールアウトを実行できます。これにより、更新を少数のユーザーに制限できます。たとえば、24時間ごとに25%のユーザーに新しいバージョンをロールアウトできます。

// Example configuration for staged rollout
{
  "plugin": "camera-plugin",
  "version": "1.2.0",
  "rollout": {
    "percentage": 25,
    "interval": "24h"
  }
}

フェーズドアプローチは、コミュニティからのフィードバックを利用して、フルリリース前に問題を早期に特定するのに役立ちます。

プルリクエストプロセス

変更を徹底的にテストした後、次の手順に従ってプルリクエストを提出してください。

PR提出チェックリスト

提出する前に、次の重要な領域をカバーしてください。

カテゴリチェックすること
Code品質- Swift/Kotlin実装がWebAPIと一致することを確認してください。
テスト- 新機能のユニットテストを追加する。
- CI/CD パイプラインのチェックが正常に実行されることを確認する。
ドキュメント- README、インラインドキュメント、CHANGELOG を必要に応じて更新する。

コミュニティガイドライン

協力する際は、以下のベストプラクティスに従う。

  • レビューフィードバックに迅速に対応する。
  • 技術的な詳細に焦点を当てた議論を続ける。
  • GitHub の提案機能を使用して、 code の変更を提案する。
  • 1 つの機能または問題に対して、小さく集中したプルリクエストを提出する。

大きな変更の場合、まず問題を作成し、自分のアプローチについて議論することが良い。 Capacitor チームは、 GitHub Actions を使用して自動チェックを実行し、すべてのチェックが正常に実行されるまでプルリクエストをレビューすることはできない。

Capgo の統合ガイド

Capgo に対してライブ更新をサポートする場合、更新が正常に機能することを確認してください:

  1. バージョン管理
    プラグインのバージョン管理に明確な意味のあるバージョニングを使用し、すべての変更を changelog に記録してください。Capgo のシステムは、ユーザー デバイス間でバージョン採用を追跡するのに役立ちます。

  2. CI/CD統合
    Capgo をCI/CDパイプラインに統合して、自動更新のデプロイを実行してください。

  3. 更新監視
    デプロイの成功率を監視し、アプリストアのガイドラインに準拠することを確認してください。

概要

プラグインを有意義に貢献するには、既存のプロセスに従い、コミュニティの標準を満たすことが重要です。これには、Capacitor のコーディングガイドラインに従い、徹底的なテストを実行することが含まれます。

PRチェックリストは、高品質なサブミッションの必要性を強調しています。Capgo (前述) と統合することで、ライブ更新をサポートするプラグインでは、App Storeの承認を待たずに迅速に更新をリリースできます。

PRがマージされた後、問題を追跡し、バージョン更新をリリースすることで、コミュニティとの定期的な交流、安定したメンテナンス、 Capacitorのアップデートを追跡する __CAPGO_KEEP_0__のアップデートを追跡する

ユーザーのフィードバックに耳を傾け、必要に応じてアップデートを実施する。この継続的な取り組みにより、エコシステム全体の品質を維持し、開発者にとってプラグインが価値のあるものになる

Capacitorアプリのリアルタイム更新

Capgoを使用して、ウェブ層のバグが生じた場合に、修正をアプリストアの承認待ちのままにしておくのではなく、即時配信することができます。ユーザーはバックグラウンドで更新を受け取り、ネイティブの変更は通常のレビュー経路を通じて実施されます。

今すぐ始めましょう

ブログの最新記事

Capgoは、プロフェッショナルなモバイルアプリを作成するために必要な最良の洞察を提供します。