Passer au contenu principal

Capacitor Guide de contribution de plugin

Apprenez comment contribuer efficacement aux plugins Capacitor avec une guide complet sur la configuration, les normes de codage, les tests et la documentation.

Capacitor Guide de contribution de plugin

Capacitor les plugins connectent les technologies web aux fonctionnalités de dispositif natif, permettant développement d'applications multiplateformesCette guide vous aide:

  • Configurer votre environnement : Les outils comme Node.js, Xcode, et Android Studio sont essentiels.
  • Suivez les normes Code : Utilisez TypeScript, Swift, et Kotlin avec des conventions de nommage et des gestionnaires d'erreurs cohérents.
  • Testez Thoroughment: Écrivez des tests unitaires pour JavaScript, iOS et Android pour garantir la fiabilité.
  • Documentez Clairement: Utilisez JSDoc et des fichiers README pour une adoption facile.
  • Soumettre une Demande de Tirage: Assurez-vous d'une qualité élevée code, des tests et de la documentation avant de contribuer.

Guide Complet sur les Logiciels Libres - Comment Contribuer

Configuration de l'environnement de développement

La configuration d'un environnement de développement approprié est essentielle pour une contribution efficace de plugins. Un setup bien préparé permet un codage, une mise au test et une mise en production sans heurts de vos plugins.

Outils et compétences dont vous aurez besoin

Avant de commencer, assurez-vous d'avoir les outils suivants installés :

Catégorie Exigences
Outils de base Node.js (LTS), npm 6+, Git
IDE/Éditeurs Visual Studio Code ou votre éditeur préféré
Développement iOS Xcode, SwiftLint, CocoaPods
Développement Android Android Studio, Android SDK, JDK

Vous devriez également être à l'aise avec TypeScript pour le développement web et soit Swift (pour iOS) ou Java/Kotlin (pour Android) pour les tâches de développement natif [1][2].

Configuration de la Monorepo

Le Capacitor plugins L'écosystème repose sur une structure de monorepo. Cette approche garantit que votre travail est conforme aux normes de la communauté dès le début.

  1. Forker et Cloner le Répertoire
    Commencez par le fork du Capacitor plugins sur GitHub. Ensuite, clonez votre forké du répertoire :

    git clone https://github.com/your-username/capacitor-plugins.git
    cd capacitor-plugins
    npm install
  2. Installer les Dépendances et Construire
    Exécutez la commande suivante pour installer tout ce dont vous avez besoin et construire les plugins :

    npm run build
  3. Configurer le Contrôle de Version
    Utilisez des branches de fonctionnalités pour vos modifications et maintenez votre fork synchronisé avec le dépôt upstream.

Préparation des Plates-formes Natives

Pour le développement cross-plateforme, vous aurez besoin de configurer les environnements iOS et Android.

Pour iOS :

  • Téléchargez Xcode depuis l'App Store Mac.

  • Installez les outils de ligne de commande en utilisant :

    xcode-select --install
  • Installez CocoaPods avec :

    sudo gem install cocoapods
  • Configurez un compte développeur Apple et les certificats nécessaires.

  • Utilisez SwiftLint (facultatif) pour maintenir la qualité de code.

Pour Android :

  • Installez Android Studio ainsi que la dernière SDK et une appareil virtuel.
  • Assurez-vous d'avoir un JDK installé.
  • Configurez correctement la SDK Android dans Android Studio.

Une fois ces plateformes configurées, vous serez prêt à suivre les pratiques de codage établies et à plonger dans le développement de plugins.

Code Standards Guide

Maintenant que votre environnement de développement est configuré, suivez ces lignes directrices pour créer des plugins faciles à maintenir et à utiliser.

Conformité au Guide de Style

Le Capacitor écosystème de plugins applique des normes de codage strictes à l'aide d'outils comme ESLint, Prettier, et SwiftLint. Voici un aperçu rapide des formats requis :

Component Format
Variables deviceInfo (camelCase)
Classes BatteryManager (PascalCase)
Méthodes getLanguageCode() (camelCase)
Constantes MAX_RETRY_COUNT (SNAKE_CASE)

Les plugins devraient utiliser TypeScript pour une meilleure sécurité des types et des fonctionnalités ES6+ telles que async/awaitEn outre, suivez les conventions de codage spécifiques aux plateformes pour Swift (iOS) et Kotlin (Android).

Gestion des erreurs et des types

Une gestion cohérente des erreurs est cruciale pour la compatibilité cross-plateforme. Voici un exemple :

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

Pour la sécurité des types :

  • Utilisez des interfaces ciblées pour des cas d'utilisation spécifiques.
  • Appliquez des types de union pour les variations spécifiques aux plateformes.

Code Documentation

Une bonne documentation est essentielle pour rendre votre plugin accessible et facile à utiliser. Suivez ces pratiques :

  1. API Documentation: Écrivez des commentaires JSDoc qui fonctionnent avec @capacitor/docgenPar exemple :
/**
 * @description Get the device's current battery level
 * @returns Promise with the battery level percentage
 */
async getBatteryLevel(): Promise<{ level: number }>;
  1. Structure du fichier README: Incluez les informations essentielles comme les étapes d'installation, les instructions de configuration, les exigences spécifiques à chaque plateforme, des exemples d'utilisation et une référence détaillée API.

Une documentation bien écrite assure que votre plugin est facile à adopter et contribue à la communauté Capacitor plus large.

sbb-itb-f9944d2

Guide de test de plugin

Le test de plugins Capacitor implique de se concentrer sur quelques domaines critiques pour s'assurer d'une fonctionnalité lisse et de la fiabilité.

Tests de pont natif

Les tests de pont natif assurent une communication appropriée entre JavaScript et code natif. Pour commencer, configurez votre environnement de test avec des frameworks conçus pour chaque plateforme.

Ici est un exemple de Jest test unitaire pour le côté JavaScript :

// 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);
  });
});

Pour le test côté natif, utilisez XCTest pour iOS et JUnit pour Android. Voici un exemple pour Android :

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

Une fois que vous avez confirmé que la fonctionnalité de pont de base fonctionne comme prévu, passez à la mise en œuvre de tests complets de flux utilisateur.

Tests du Plugin Complet

Pour vous assurer que votre plugin fonctionne bien dans différents scénarios, testez différentes catégories :

Catégorie de Test Domaines d'attention clés
Tests d'intégration Fonctionnalité cross-plateforme
Tests de performance Utilisation des ressources et temps de réponse
Tests de sécurité Gestion des données et vérifications de permissions

Pour les plugins avec des fonctionnalités complexes, simulez des scénarios de l'usage réel. Par exemple, si vous testez un plugin DeviceInfo, vérifiez :

  • Conditions de réseau différents pour les téléchargements réussis
  • Rapports de progression précis
  • Utilisation de la mémoire pendant les transferts de fichiers volumineux

Test de mise à jour OTA avec Capgo

Capgo Live Update Dashboard Interface

Capgo fournit des outils open-source pour faciliter la mise en ligne et le test des mises à jour rapidement. Voici comment l'utiliser :

  1. Configurer les canaux de mise à jour comme dev, étape, et production.
  2. Automatiser les déploiements avec des outils CI/CD.
  3. Publier des mises à jour instantanément.
  4. Surveillez les performances et les problèmes via le Capgo tableau de bord.

Pour les déploiements étalés, Capgo vous permet de limiter les mises à jour à une petite fraction d'utilisateurs. Par exemple, vous pouvez déployer une nouvelle version à 25 % d'utilisateurs tous les 24 heures :

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

Cet approche étalée aide à identifier les problèmes tôt en exploitant les commentaires de la communauté avant une mise en production complète.

Processus de demande de tirage

Lorsque vous avez soigneusement testé vos modifications, suivez ces étapes pour soumettre votre demande de tirage :

Liste de vérification de soumission de PR

Avant de soumettre, assurez-vous d'avoir couvert ces domaines clés :

Catégorie Ce que vérifier
Qualité de Code - Assurez-vous que les implémentations Swift/Kotlin correspondent à l’API web.
Test - Ajoutez des tests unitaires pour toute nouvelle fonctionnalité.
- Confirmez que les contrôles de pipeline CI/CD sont réussis.
Documentation - Mettez à jour la documentation, la documentation inline et le CHANGELOG en fonction des besoins.

Règles de la Communauté

Lors de la collaboration, suivez ces meilleures pratiques :

  • Répondez rapidement aux commentaires des réviseurs.
  • Concentrez-vous sur les détails techniques.
  • Utilisez la fonctionnalité de proposition de GitHub pour proposer des code modifications.
  • Soumettez des demandes de modification petites et ciblées qui s'attaquent à une fonctionnalité ou à un problème à la fois.

Pour des changements plus importants, il est une bonne idée de créer un problème en premier et de discuter de votre approche. L'équipe de Capacitor se fonde sur les Actions de GitHub pour les contrôles automatisés, et tous les contrôles doivent passer avant que votre demande de modification puisse être examinée.

Guide d'intégration Capgo

Si votre plugin implique des mises à jour en temps réel, assurez-vous qu'il fonctionne sans heurt avec Capgo avant de le soumettre :

  1. Contrôle de version
    Utilisez une versionnement sémantique clair pour votre plugin, et documentez toutes les modifications dans le changelog. Le système de Capgo aide à suivre l'adoption des versions sur les appareils des utilisateurs.

  2. Intégration CI/CD
    Intégrez Capgo dans votre pipeline CI/CD pour automatiser les déploiements de mise à jour.

  3. Suivi des mises à jour
    Surveillez les taux de réussite des déploiements et assurez-vous de respecter les lignes directrices des magasins d'applications.

Résumé

Pour faire une contribution significative avec votre plugin, il est important de suivre le processus établi et de respecter les normes de la communauté. Cela inclut le respect des lignes directrices de codage de Capacitor et la vérification approfondie de votre travail.

Le checklist PR met en évidence la nécessité de soumissions de haute qualité. Si votre plugin prend en charge les mises à jour en temps réel, l'intégration avec Capgo (comme mentionné précédemment) peut vous aider à libérer des mises à jour rapidement sans attendre l'approbation des magasins d'applications.

Une fois votre PR fusionné, restez impliqué en suivant les problèmes et en publiant des mises à jour de version. Une interaction régulière avec la communauté, une maintenance constante et garder le rythme avec les mises à jour de Capacitor assurera que votre plugin reste utile et pertinent.

Prêtez attention aux commentaires des utilisateurs et mettez à jour votre plugin en fonction de leurs besoins. Cette démarche continue contribue à maintenir la qualité globale de l'écosystème et rend votre plugin précieux pour les développeurs.

Continuez à partir de la Guide de contribution de Capacitor Plugin

Si vous utilisez la Guide de contribution de Capacitor pour planifier le travail de plugin natif, connectez-l’avec le Répertoire de plugins de Capgo pour le flux de travail du produit dans le Répertoire de plugins de Capgo les Plugins de Capacitor par Capgo pour les détails d'implémentation dans les Plugins de Capacitor par Capgo Ajouter ou mettre à jour des plugins Pour les détails d'implémentation dans l'ajout ou la mise à jour des plugins. Alternatives de plugins Ionic Enterprise pour le flux de travail du produit dans les alternatives Ionic Enterprise Plugin. Capgo Native Builds pour le flux de travail du produit dans les constructions natives Capgo.

Mises à jour en temps réel pour les applications Capacitor

When a web-layer bug is live, ship the fix through Capgo instead of waiting days for app store approval. Users get the update in the background while native changes stay in the normal review path.

Lorsqu'un bug de couche web est en ligne, expédiez la correction par le biais de __CAPGO_KEEP_0__ au lieu d'attendre des jours pour l'approbation de la boutique d'applications. Les utilisateurs reçoivent la mise à jour en arrière-plan tandis que les modifications natives restent dans le chemin de revue normal.

Context : Page/zone : Copie de marketing du site web. Rôle : Phrase de copie du site web ou description métadonnées. Vu dans : composant GetStarted.astro. Préservons les termes de produit/marque et les termes de développeur exactement. Clé de message `instant_updates_for_capacitor_apps_description` (Description des mises à jour instantanées pour les applications Capacitor).

Support humain de Martin

Capgo gives you the best insights you need to create a truly professional mobile app.