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 Capacitor peuvent sembler surchargés, mais il est plus facile de les gérer étape par étape. Voici ce que vous devez savoir :

  1. Comprendre les outils:

    • JavaScriptUtilisez-le pour gérer les dépendances. npm iOS
    • Utilisez CocoaPods ou le Swift Package Manager (SPM).Android __CAPGO_KEEP_0__ __CAPGO_KEEP_0__
    • __CAPGO_KEEP_0__: 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:

    • iOS: Configurez CocoaPods ou SPM avec des bibliothèques comme Alamofire ou, en fonction de votre projet, configurez CocoaPods ou SPM avec des bibliothèques comme Capawesome ou Appflow. SwiftyJSON.
    • Android: Utilisez Gradle pour ajouter des dépendances comme Gson ou AppCompat.
  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 des mises à jour en temps réel:

    • 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. En profondeur, découvrez les étapes.

Comment créer un Capacitor context : Mise à jour en direct page de produit. Rôle : En-tête de section ou de page. Vu dans : page live-update.astro. Préservez les termes de produit/marque et les termes de développeur exactement. Clé de message `live_update_platform_capacitor_title` (Titre de la mise à jour en direct de la plateforme Capacitor).

Documentation du Capacitor Framework

Configuration de votre environnement de développement

Préparez votre configuration avec les outils nécessaires pour gérer efficacement Capacitor plugin outils de développement requis

Liste des outils dont vous aurez besoin :

Outil

Version Objectif Node.js
npm 16.0.0+ Environnement 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éer 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. Sélectionnez vos plateformes cibles (iOS/Android).
  3. Attribuez un nom à votre plugin en format de domaine inversé.

Étapes de configuration du projet

  1. Mettre à jour package.json

    Modifier votre package.json pour y inclure 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 Android, vérifiez que 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 Android __CAPGO_KEEP_0__ Android SDK location /Users/username/Bibliothèque/Android/sdk
    JAVA_HOME 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

Exécutez les commandes suivantes pour installer les dépendances :

# 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 peer dans votre fichier. Testez toutes les dépendances pour confirmer la compatibilité sur les deux plateformes web et natives. package.json Gestion de package.json

Voici un exemple de configuration :

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

{
  "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"
  }
}

Exemple

Utilisation Précise Exact
Constraint Type “5.0.0” For les dépendances critiques nécessitant une version spécifique
Caret “^5.0.0” Permet des mises à jour mineures et de corrections
Tilde “~5.0.0” Restreint les mises à jour aux corrections seulement

L'utilisation de 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 d'une gestion des erreurs et d'un contrôle de type correcte :

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

Ensuite, découvrez 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 les __CAPGO_KEEP_0__ plugins Capacitor plugins. Une fois que vous avez configuré vos dépendances JavaScript, la prochaine étape consiste à gérer les dépendances natives iOS.

CocoaPods Configuration

Initialisez CocoaPods dans votre répertoire iOS :

Ensuite, mettez à jour votre

cd ios
pod init

fichier avec les configurations suivantes : Plugin.podspec Configuration du Podfile

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

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

After initializing CocoaPods, configure the Podfile to include Capacitor and any additional third-party libraries:

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

Type de contrainte

Exemple Setup Utilisation
Version Exacte pod 'KeychainAccess', '4.2.2' Lorsqu'une contrôle précis est nécessaire, comme pour les composants de sécurité
Version Mineure pod 'Alamofire', '~> 5.6' Pour les API stables qui peuvent recevoir des mises à jour de correctif
Version Majeure pod 'SwiftyJSON', '> 5.0' Lorsque la flexibilité à travers les mises à jour est acceptable

Dépendances de Package Swift

Si vous préférez ne pas utiliser CocoaPods, le gestionnaire de packages Swift (SPM) est une bonne alternative. Ajoutez les dépendances SPM directement dans Xcode avec la configuration suivante dans votre 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")
]

Pour utiliser les dépendances SPM dans votre plugin code, importez-les et intégrez-les comme nécessaire. Par exemple :

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 le gestionnaire de packages Swift en fonction des exigences de votre projet.

Dependencies 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éfinez 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 des répertoires

Dans votre niveau de projet build.gradle, incluez les dépôts Maven requis :

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

Si vous utilisez des dépôts Maven personnalisés ou privés, ajoutez des informations d'identification comme ceci :

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 tout conflit de dépendance qui pourrait survenir.

Résolution des problèmes de compatibilité

Pour gérer les conflits de dépendance, 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épendance 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 Utiliser des versions strictes strictly 'androidx.core:core-ktx:1.10.1'

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

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

Enfin, optimisez votre processus de build 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 natives et JavaScript, la mise à jour de votre plugin devient 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 permet aux développeurs de pousser des mises à jour pour les dépendances et les code instantanément - sans nécessité de révision par l'App Store. Les mises à jour sont sécurisées par cryptage de bout en bout et répondent aux normes de conformité Apple et Android.

Capgo Update Features

Capgo simplifie la gestion des dépendances des plugins avec ces fonctionnalités :

Fonctionnalité Ce qu'il fait Indicateur clé
Mises à jour en direct Publiez des mises à jour en quelques minutes 95% de taux d'actualisation des utilisateurs en 24 heures
Mises à jour partielles Téléchargez uniquement les fichiers modifiés 434ms temps de réponse moyen API
Contrôle de version gestion de plusieurs versions taux de réussite mondial de 82%
Système 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. Configurez les préférences de mise à jour

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

  3. Ajouter la logique d'actualisation

    Ajoutez cette 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 pour livrer continuellement à 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. Des fonctionnalités comme le retour en arrière en un clic et la suivi des erreurs aident à résoudre rapidement les problèmes, garantissant que vos mises à jour de plugin fonctionnent sans heurt.

Conclusion

Révision du processus

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

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
Isolement de la plateforme Minimise les conflits Dépendances natives séparées
Mises à jour régulières Améliore la sécurité Appliquez les correctifs critiques avec promptitude
Vérification des dépendances Détection des risques Exécutez npm audit fréquemment

En utilisant des outils d'actualisation en temps réel comme Capgo peut simplifier encore 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 un taux d'actualisation utilisateur impressionnant de 95% en 24 heures et maintient un temps de réponse global __CAPGO_KEEP_0__ de and maintains a global API response time of . 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_KEEP_0__ permet des déploiements ciblés pour des groupes d'utilisateurs spécifiques. [1]Ici est un aperçu rapide des performances de Capgo :

Here’s a quick look at Capgo’s performance:

Valeur Exécutez __CAPGO_KEEP_0__ pour une mise à jour en temps réel
Temps de réponse global API 434ms
Taux de réussite de mise à jour 82%
Vitesse d'actualisation de l'utilisateur (24 heures) 95%

Continuez de la même manière que pour ajouter des dépendances dans les plugins Capacitor

Si vous utilisez Comment ajouter des dépendances dans les plugins Capacitor pour planifier le travail de plugin natif, connectez-l’à répertoire des plugins Capgo pour le flux de travail du produit dans le répertoire des plugins Capgo plugins Capacitor par Capgo pour les détails d'implémentation dans les plugins Capacitor par Capgo Ajouter ou Mettre à Jour les Plugins pour les détails d'implémentation dans Ajouter ou Mettre à Jour les Plugins Alternatives de Plugins Ionic Enterprise pour le flux de travail du produit dans Alternatives de Plugins Ionic Enterprise, et Capgo Builds Natives pour le flux de travail du produit dans Capgo Builds Natives.

Actualisations en direct pour les applications Capacitor

Même si un bug de couche web est actif, envoyez la correction à travers 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 modifications natives restent dans le chemin de revue normal.

Un soutien humain de Martin

Démarrer 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.