Sauter au contenu principal

Comment ajouter des dépendances dans les plugins Capacitor

Apprenez à rationaliser la gestion des dépendances dans les plugins Capacitor sur plusieurs plateformes avec des étapes pratiques et des meilleures pratiques.

Comment ajouter des dépendances dans les plugins Capacitor

Ajouter des dépendances à Capacitor Les plugins peuvent sembler surchargés, mais cela devient plus facile lorsqu'on les divise en étapes claires. Voici ce dont vous avez besoin de savoir :

  1. Comprenez les outils:

    • JavaScript : Utilisez-le npm pour gérer les dépendances.
    • iOS : Utilisez CocoaPods ou le Gestionnaire de packages Swift (SPM).
    • Android : Utilisez Gradle pour la gestion des dépendances.
  2. Configurez votre environnement de développement:

  3. Démarrer votre Capacitor projet de plugin:

    • Utilisez npm init @capacitor/plugin pour créer un nouveau plugin.
  4. Ajoutez les dépendances JavaScript:

    • Utilisez npm install pour les dépendances de production et de développement.
    • Mettez à jour package.json pour inclure les dépendances de pair comme @capacitor/core.
  5. Gérez les dépendances spécifiques à la plateforme:

  6. Optimisez les performances:

    • Fixez les versions, passez en revue les dépendances et résolvez les conflits pour garantir la stabilité.
  7. Utilisez des outils comme Capgo pour les mises à jour en direct:

    • Publiez des mises à jour instantanément sans passer par les revues des magasins d'applications.

Comparaison Rapide des Outils:

Plateforme Outil Exemple de Dépendance
JavaScript npm npm install lodash --save
iOS CocoaPods/SPM pod 'Alamofire', '~> 5.6.4'
Android Gradle implementation 'com.google.code.gson:gson:2.10.1'

Pourquoi cela compte: Gérer efficacement les dépendances garantit que votre plugin fonctionne sans heurts sur plusieurs plateformes, économise du temps et évite les erreurs. Découvrons les étapes plus en détail.

Comment créer un Capacitor Documentation du framework pour iOS/Android

Capacitor Site Web de la documentation du framework

Configuration de votre environnement de développement

Préparez votre configuration avec les outils nécessaires pour gérer efficacement Capacitor plugin les dépendances de manière efficace.

Outils de développement requis

Voici une liste d'outils dont vous aurez besoin :

Outil Version But
Node.js 16.0.0+ Environnement de temps d'exécution JavaScript
npm 8.0.0+ Gestion de packages
Xcode 14.0+ Développement iOS (Mac uniquement)
Android Studio Electric Eel+ Développement Android
CocoaPods 1.11.0+ Gestion de dépendances iOS
JDK 11+ Outils de construction Android

Création d'un nouveau plugin

Utilisez les Capacitor CLI pour démarrer votre projet de plugin. Cela inclut la configuration des plateformes et la nomination de votre plugin en utilisant un format de domaine inversé (par exemple, com.mycompany.plugin):

  1. Exécutez la commande suivante :
    npm init @capacitor/plugin
  2. Choisissez vos plateformes cibles (iOS/Android).
  3. Attribuez un nom à votre plugin sous la forme d'un nom de domaine inversé.

Étapes de configuration du projet

  1. Mettre à jour package.json

    Modifiez votre package.json pour qu'elle inclue les éléments suivants :

    {
      "capacitor": {
        "ios": {
          "src": "ios"
        },
        "android": {
          "src": "android"
        }
      },
      "peerDependencies": {
        "@capacitor/core": "^5.0.0"
      }
    }
  2. Configuration de la plateforme spécifique

    • Pour iOS, assurez-vous que votre fichier Podfile inclut :

      platform :ios, '13.0'
      use_frameworks!
    • Pour Androidvérifiez votre build.gradle contient :

      android {
          compileSdkVersion 33
          defaultConfig {
              minSdkVersion 22
          }
      }
  3. Configurer les variables d'environnement suivantes pour vos outils de développement :

    Variable

    But Valeur d'exemple ANDROID_HOME
    Emplacement d'Android Android SDK location /Users/username/Library/Android/sdk
    But Chemin d'installation de JDK /Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home
    XCODE_SELECT Outils de ligne de commande Xcode /Applications/Xcode.app/Contents/Developer

Une fois votre projet configuré, vous êtes prêt à passer à la gestion des dépendances JavaScript.

Dépendances JavaScript

Gérer efficacement les dépendances JavaScript est essentiel pour maintenir une performance stable des plugins.

npm Installation de package

npm

Pour installer les dépendances, utilisez les commandes suivantes :

# Add a production dependency
npm install lodash --save

# Add a development dependency
npm install @types/lodash --save-dev

Assurez-vous d'inclure manuellement les dépendances de pair dans votre package.json Testez toutes les dépendances pour confirmer la compatibilité sur les deux plateformes web et natives.

Gestion de package.json

Voici un exemple package.json de configuration :

{
  "name": "my-capacitor-plugin",
  "version": "1.0.0",
  "dependencies": {
    "lodash": "^4.17.21"
  },
  "devDependencies": {
    "@types/lodash": "^4.14.195",
    "@capacitor/core": "^5.0.0"
  },
  "peerDependencies": {
    "@capacitor/core": "^5.0.0"
  }
}

Pour maintenir la cohérence, bloquez les versions des dépendances de manière appropriée :

Type de contrainte Exemple Utilisation
context : Page/zone : Page de marketing des solutions Capgo. Rôle : Étiquette de navigation ou élément UI court. Vu dans : page solutions/cordova-to-capacitor-ai.astro. Clé de message `solutions_cordova_to_capacitor_ai_table_use_case` (Solutions Cordova To Capacitor Ai Table Use Case). “5.0.0” Précis
Pour les dépendances critiques nécessitant une version spécifique “^5.0.0” Permet des mises à jour mineures et des correctifs
Tilde “~5.0.0” Restreint les mises à jour aux correctifs seulement

En utilisant les bibliothèques JavaScript

Lors de l'importation de bibliothèques, concentrez-vous sur la réduction de la taille du bundle :

// Import only the required function
import { isEqual } from 'lodash';

export class MyPlugin {
  async compare(options: { value1: any, value2: any }): Promise<boolean> {
    return isEqual(options.value1, options.value2);
  }
}

En outre, assurez-vous une gestion des erreurs et une vérification de type correctes :

import { Plugin } from '@capacitor/core';
import { validate } from 'your-validation-library';

@Plugin({
  name: 'MyPlugin',
  platforms: ['web', 'ios', 'android']
})
export class MyPlugin {
  async validateData(data: unknown): Promise<void> {
    try {
      if (!validate(data)) {
        throw new Error('Invalid data format');
      }
      // Continue processing if valid
    } catch (error) {
      throw new Error(`Validation failed: ${error.message}`);
    }
  }
}

Prochainement, explorez comment gérer les dépendances spécifiques aux plateformes pour iOS.

Dépendances iOS

Cette section explique comment gérer les dépendances natives iOS dans Capacitor plugins. Une fois que vous avez configuré vos dépendances JavaScript, le prochain pas consiste à gérer les dépendances natives iOS.

CocoaPods Configuration

CocoaPods

Démarrez par initialiser CocoaPods dans votre répertoire iOS :

cd ios
pod init

Ensuite, mettez à jour votre Plugin.podspec fichier avec les configurations suivantes :

Pod::Spec.new do |s|
  s.name = 'MyCapacitorPlugin'
  s.version = '1.0.0'
  s.summary = 'Your plugin description'
  s.platform = :ios, '13.0'
  s.dependency 'Capacitor'
  # Include your iOS dependencies here
  s.dependency 'Alamofire', '~> 5.6.4'
end

Configuration du Podfile

Après avoir initialisé CocoaPods, configurez le Podfile pour inclure Capacitor et toute autre bibliothèque tiers supplémentaire :

platform :ios, '13.0'
use_frameworks!

def capacitor_pods
  pod 'Capacitor', :path => '../../node_modules/@capacitor/ios'
  pod 'CapacitorCordova', :path => '../../node_modules/@capacitor/ios'
end

target 'Plugin' do
  capacitor_pods
  # Add third-party dependencies
  pod 'KeychainAccess', '~> 4.2.2'
  pod 'SwiftyJSON', '~> 5.0.1'
end

target 'PluginTests' do
  capacitor_pods
end

Ici sont présentés quelques modèles de configuration de dépendance courants :

Type de contrainte Exemple Utilisation
Version exacte pod 'KeychainAccess', '4.2.2' When precise control is needed, such as for security components
Version mineure pod 'Alamofire', '~> 5.6' For APIs stables qui peuvent recevoir des mises à jour de patch
Version majeure pod 'SwiftyJSON', '> 5.0' When flexibility across updates is acceptable

Dépendances de package Swift

If you’d rather not use CocoaPods, Swift Package Manager (SPM) is a good alternative. Add SPM dependencies directly in Xcode with the following configuration in your Package.swift fichier : 

// Package.swift
dependencies: [
    .package(url: "https://github.com/Alamofire/Alamofire.git", .upToNextMajor(from: "5.6.4")),
    .package(url: "https://github.com/SwiftyJSON/SwiftyJSON.git", from: "5.0.1")
]

To use SPM dependencies in your plugin code, import them and integrate as needed. For example:

import Capacitor
import Alamofire

@objc(MyPlugin)
public class MyPlugin: CAPPlugin {
    @objc func makeRequest(_ call: CAPPluginCall) {
        AF.request("https://api.example.com/data").response { response in
            // Process the response
            call.resolve([
                "data": response.data
            ])
        }
    }
}

Cette approche vous permet de choisir entre CocoaPods et Swift Package Manager en fonction de vos besoins de projet.

Dépendances Android

Configurez les dépendances Android pour une intégration native fluide. Voici comment gérer les dépendances pour votre plugin Capacitor.

Gradle Dépendances

Interface de l'outil de construction Gradle

Ajoutez les configurations suivantes à votre build.gradle fichier :

android {
    defaultConfig {
        minSdkVersion 22
        targetSdkVersion 33
    }
}

dependencies {
    implementation "androidx.appcompat:appcompat:1.6.1"
    implementation "com.google.code.gson:gson:2.10.1"
    implementation "org.jetbrains.kotlin:kotlin-stdlib:1.8.20"
    implementation project(':capacitor-android')
}

Définissez des versions supplémentaires dans le buildscript bloc :

buildscript {
    ext {
        androidxCoreVersion = '1.10.1'
        kotlinVersion = '1.8.20'
    }
}

Une fois les dépendances configurées, assurez-vous de configurer les répertoires nécessaires.

Configuration du répertoire

Dans votre niveau de projet build.gradle, incluez les répertoires Maven requis :

allprojects {
    repositories {
        google()
        mavenCentral()
        maven { url "https://jitpack.io" }
    }
}

Si vous utilisez des répertoires Maven personnalisés ou privés, ajoutez des informations d'identification comme suit :

maven {
    url "https://maven.example.com/releases"
    credentials {
        username = project.findProperty("mavenUsername") ?: System.getenv("MAVEN_USERNAME")
        password = project.findProperty("mavenPassword") ?: System.getenv("MAVEN_PASSWORD")
    }
}

Une fois les dépôts configurés, résolvez les conflits de dépendances qui peuvent survenir.

Résoudre les problèmes de compatibilité

Pour gérer les conflits de dépendances, appliquez des résolutions de versions dans votre build.gradle:

configurations.all {
    resolutionStrategy {
        force "org.jetbrains.kotlin:kotlin-stdlib:1.8.20"
        force "androidx.core:core-ktx:1.10.1"
    }
}

Voici des stratégies pour résoudre les problèmes de dépendances courants :

Type de problème Stratégie Exemple
Conflit de version Forcer une version spécifique force 'com.google.code.gson:gson:2.10.1'
Plusieurs versions Exclure un module exclude group: 'org.json', module: 'json'
Problèmes transitatifs Utilisez des versions strictes strictly 'androidx.core:core-ktx:1.10.1'

Par exemple, vous pouvez exclure les modules en conflit comme ceci :

dependencies {
    implementation('library:name:1.0.0') {
        exclude group: 'com.conflicting.dependency'
    }
}

Enfin, optimisez votre processus de construction en activant la mise en cache et l'exécution parallèle dans gradle.properties:

org.gradle.caching=true
org.gradle.parallel=true
org.gradle.jvmargs=-Xmx2048m

Capgo Intégration

Capgo Interface de tableau de bord de mise à jour en direct

En utilisant Capgo en parallèl’avec la gestion de dépendances native et JavaScript, la mise à jour de votre plugin est plus rapide et plus facile.

À propos de Capgo

Capgo est une plateforme de mise à jour en direct conçue pour les plugins et les applications Capacitor. [1], Capgo allows developers to push updates for dependencies and code instantly - no app store review required. Updates are secured with end-to-end encryption and meet both Apple and Android compliance standards.

Capgo permet aux développeurs de pousser des mises à jour pour les dépendances et les __CAPGO_KEEP_1__ instantanément - sans besoin de révision d'une boutique d'applications. Les mises à jour sont sécurisées par cryptage de bout en bout et répondent aux normes de conformité Apple et Android.

Capgo : fonctionnalités de mise à jour

Fonctionnalité Ce qu'il fait Indicateur clé
Mises à jour en direct Mise à jour en direct en quelques minutes Taux d'actualisation des utilisateurs de 95% en 24 heures
Mises à jour partielles Télécharger uniquement les fichiers modifiés 434ms average API response time
Contrôle de version Gérer plusieurs versions Taux de réussite mondial de 82%
Systeme de canal Ciblez des groupes d'utilisateurs spécifiques Supporte plusieurs canaux de déploiement

Source : [1]

Capgo fonctionne de manière fluide avec les outils CI/CD comme GitHub Actions, GitLab CI et Jenkins, automatisant les mises à jour des dépendances et garantissant des versions de plugins cohérentes. Ces outils facilitent l'intégration de Capgo dans votre flux de travail.

Configuration de Capgo

Suivez ces étapes pour intégrer Capgo dans votre projet :

  1. Installez le Capgo CLI

    Exécutez la commande suivante dans votre terminal :

    npx @capgo/cli init
  2. Configuration des préférences de mise à jour

    Utilisez l'interface de dashboard de Capgo pour configurer les canaux de déploiement et les préférences. Les configurations hébergées dans le cloud et auto-hébergées sont prises en charge.

  3. Ajoutez la logique de mise à jour

    Ajoutez ceci code à votre fichier principal de plugin pour activer les mises à jour :

    import { Capgo } from '@capgo/capacitor-updater';
    
    // Initialize Capgo
    const capgo = new Capgo({
      appId: 'YOUR_APP_ID',
      channel: 'production'
    });
    
    // Check for updates
    await capgo.checkForUpdate();

“Nous pratiquons le développement agile et @Capgo est essentiel à la livraison continue à nos utilisateurs !” - Rodrigo Mantica

Capgo fournit également un tableau de bord d'analytique pour des informations en temps réel sur les taux de réussite des mises à jour et l'activité des utilisateurs. Les fonctionnalités comme le retour en arrière en un clic et la traçabilité des erreurs aident à résoudre rapidement les problèmes, permettant ainsi aux mises à jour de vos plugins de fonctionner de manière fluide.

Conclusion

Révision du processus

Gérer les dépendances pour les plugins Capacitor implique d'aligner les composants natifs (iOS et Android) avec leurs équivalents JavaScript pour garantir une intégration fluide. Ce processus comprend des paramétrages spécifiques aux plateformes et la gestion de packages JavaScript pour atteindre la meilleure performance. Suivre les étapes décrites ci-dessus aidera à maintenir une fonctionnalité stable et efficace de vos plugins.

Meilleures pratiques

Gérer efficacement les dépendances implique de considérer ces pratiques :

Pratique Avantage Comment mettre en œuvre
Fixation de version Évite les problèmes inattendus Utilisez des versions fixes dans package.json
L'isolement de la plateforme Minimise les conflits Sépare les dépendances natives
Mises à jour régulières Améliore la sécurité Appliquez les correctifs critiques avec promptitude
Auditing des dépendances Détermine les risques Exécutez npm audit fréquemment

En utilisant des outils d'actualisation en temps réel comme Capgo peut simplifier et améliorer ces pratiques en permettant des mises à jour en temps réel.

Capgo Benefits

Capgo simplifie le processus de gestion des dépendances tout en offrant une performance solide. Il atteint une impressionnante 95% de taux d'actualisation des utilisateurs dans les 24 heures et maintient un temps de réponse global API de 434ms [1]. Avec une encryption de bout en bout, il garantit des mises à jour sécurisées qui répondent aux deux lignes directrices d'Apple et d'Android. Pour les équipes gérant plusieurs versions de plugins, le système de canal de Capgo permet des déploiements ciblés pour des groupes d'utilisateurs spécifiques.

Ici, voici un aperçu rapide des performances de Capgo :

Indicateur Valeur
Temps de réponse global API 434ms
Taux de Succès de Mise à Jour 82%
Taux de Mise à Jour de l'Utilisateur (24 Heures) 95%

Continuez de la même manière à partir de Comment ajouter des dépendances dans les Capacitor Plugins

Si vous utilisez Comment ajouter des dépendances dans les Capacitor Plugins pour planifier le travail de plugin natif, connectez-l’avec Répertoire de Plugins Capgo pour le flux de travail du produit dans le Répertoire de Plugins Capgo Capacitor Plugins par Capgo pour les détails d'implémentation dans les Capacitor Plugins par Capgo Ajouter ou Mettre à Jour des Plugins pour les détails d'implémentation dans Ajouter ou Mettre à Jour des Plugins Alternatives d'extension Ionic Enterprise pour le flux de travail du produit dans les alternatives d'extension Ionic Enterprise, et Capgo Bâtiments natifs pour le flux de travail du produit dans Capgo Bâtiments natifs.

Mises à Jour en Temps Réel pour les Applications Capacitor

Quand un bug de la couche web est en ligne, expédiez la correction par le biais de Capgo 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 changements natifs restent dans la voie de revue normale.

Un soutien humain de la part de Martin

Commencez maintenant

Dernières actualités de notre blog

Capgo vous donne les meilleures informations dont vous avez besoin pour créer une application mobile vraiment professionnelle.