Aller au contenu principal

Comment Capacitor gère les différences de plateforme

Apprenez à gérer efficacement les différences entre plateformes dans le développement d'applications mobiles avec une seule base de code pour iOS et Android.

Comment Capacitor gère les différences entre plateformes Capgo illustration du blog

Capacitor aide les développeurs à compiler des applications pour iOS et Android à partir d’une même base de code, tout en gérant les spécificités de chaque plateforme. Il simplifie l’intégration des fonctionnalités natives, garantit la conformité aux directives des plateformes et optimise les performances. Points clés :

  • Détection de la plateforme : Utilisez Capacitor.getPlatform() pour appliquer des code spécifiques à la plateforme.
  • Plugins intégrés: des API unifiées pour des fonctionnalités comme Camera, Storage et Geolocation.
  • Plugins personnalisés: ajoutez des code natifs pour des besoins spécifiques.
  • Ajustements d’interface: respectez les règles de design d’iOS (p. ex., SF Symbols, boutons arrondis) et d’Android (p. ex., Material Icons, boutons alignés à gauche).
  • Configuration: Ajustez les paramètres dans capacitor.config.json pour les deux plateformes.
  • Live updates avec Capgo: Déployez des mises à jour instantanément sans les délais des stores, avec jusqu'à 95 % d'adoption en 24 heures.

Comparaison rapide

Fonctionnalité iOS Android
Navigation Barres d'onglets en bas, bouton retour à gauche Tiroir de navigation en haut, navigation en bas
Typographie Police San Francisco Police Roboto
Plugins (ex. : Camera) AVFoundation Camera2 API
Sortie du build .ipa fichier .aab ou .apk fichier

Capacitor comble le fossé entre le développement web et natif, facilitant la création d’applications multiplateformes tout en conservant les optimisations spécifiques à chaque plateforme.

Développement multiplateforme : explorer CapacitorJS avec …

Comment Capacitor Gère les différences de plateforme Code

Site de documentation du framework Capacitor

Capacitor propose des outils pour gérer les spécificités de plateforme code, permettant aux développeurs de créer des expériences sur mesure pour iOS et Android à partir d'un seul API.

Détecter les plateformes dans Code

Grâce aux API de plateforme intégrés à Capacitor, la détection de la plateforme actuelle est simple. Le Capacitor.getPlatform() méthode identifie l'environnement d'exécution, ce qui facilite l'application de logique conditionnelle :

import { Capacitor } from '@capacitor/core';

const platform = Capacitor.getPlatform();
if (platform === 'ios') {
  // Code specific to iOS
} else if (platform === 'android') {
  // Code specific to Android
}

Cette approche est particulièrement pratique pour des fonctionnalités comme l'authentification biométrique, où iOS utilise Face ID et Android repose sur l’authentification par empreinte digitale. Avec la détection de plateforme, les plugins intégrés de Capacitor simplifient l’intégration native.

Fonctionnalités de plateforme intégrées

Capacitor est livré avec un ensemble de plugins de base qui gèrent les différences spécifiques à chaque plateforme en toute transparence. Ces plugins gèrent la complexité des implémentations natives tout en offrant une interface JavaScript cohérente :

Plugin Implémentation iOS Implémentation sur Android
Caméra AVFoundation Camera2 API
Stockage UserDefaults SharedPreferences
géolocalisation CoreLocation LocationManager

Chaque plugin utilise automatiquement les API natives de la plateforme, garantissant des performances et des fonctionnalités optimales.

Créer des plugins de plateforme personnalisés

Lorsque les plugins intégrés ne répondent pas à vos besoins, vous pouvez créer des plugins personnalisés pour accéder à des API natives spécifiques. Voici comment :

  1. Définir le plugin

    @Plugin({
      name: 'CustomFeature',
      platforms: ['ios', 'android']
    })
  2. Ajouter le code natif Code

    @PluginMethod()
    async customFunction(): Promise<void> {
      if (Capacitor.getPlatform() === 'ios') {
        // Add iOS-specific code
      } else {
        // Add Android-specific code
      }
    }
  3. Implémenter les gestionnaires de plateforme

    • iOS (Swift) :

      @objc func customFunction(_ call: CAPPluginCall) {
        // Add native iOS functionality
      }
    • Android (Kotlin) :

      @PluginMethod
      fun customFunction(call: PluginCall) {
        // Add native Android functionality
      }

Les plugins personnalisés permettent d’accéder aux fonctionnalités natives tout en gardant l’API cohérent et facile à utiliser. Cela garantit performance et fonctionnalités sans compliquer le processus de développement.

Directives d’interface spécifiques à la plateforme

Règles de conception iOS vs Android

Lors de la conception pour iOS et Android, il est essentiel de respecter les modèles de conception natifs. Les utilisateurs de chaque plateforme ont des attentes différentes en matière de navigation, de typographie, de boutons, d’en-têtes et d’icônes. Voici comment ils se comparent :

Élément de design iOS Android
Navigation Barres d’onglets en bas, bouton retour à gauche Tiroir de navigation en haut, navigation en bas
Typographie Police San Francisco Police Roboto
Boutons Rectangles arrondis, texte centré Boutons Material Design, texte aligné à gauche
En-têtes Grands titres, centrés Barres d'application, alignées à gauche
Icônes SF Symbols Material Icons

Standards de design multiplateforme

Bien que chaque plateforme ait ses propres règles, maintenir une identité de marque cohérente sur les deux est essentiel. Voici comment garantir la cohérence :

const sharedStyles = {
  primaryColor: '#007AFF', // iOS blue
  androidPrimaryColor: '#6200EE', // Material Design purple
  borderRadius: Capacitor.getPlatform() === 'ios' ? '10px' : '4px'
};

:root {
  --app-header-height: var(--platform-header-height, 56px);
  --app-safe-area-top: var(--platform-safe-area-top, 0px);
}

Avec Capacitor, vous pouvez intégrer des composants UI spécifiques à la plateforme tout en conservant une fonctionnalité cohérente. Cela aide également à gérer les paramètres système comme le Dark Mode et le Dynamic Type. Pour finaliser le processus, assurez-vous que vos paramètres de build spécifiques à la plateforme sont alignés sur ces directives.

Configuration et réglages de la plateforme

Après avoir géré votre code de plateforme, une configuration appropriée est essentielle pour que votre application fonctionne sans accroc sur iOS et Android.

Paramètres de la plateforme dans capacitor.config.json

Utilisez le capacitor.config.json fichier pour définir les paramètres spécifiques à la plateforme :

{
  "appId": "com.example.app",
  "appName": "MyApp",
  "ios": {
    "contentInset": "always",
    "backgroundColor": "#ffffff",
    "scheme": "myapp",
    "preferredContentMode": "mobile"
  },
  "android": {
    "backgroundColor": "#FFFFFF",
    "allowMixedContent": true,
    "captureInput": true,
    "webContentsDebuggingEnabled": true
  }
}

Voici quelques options de configuration à considérer :

Option iOS Android
Deep links scheme propriété androidScheme propriété
Barre de statut statusBar.style statusBar.backgroundColor
Clavier keyboard.resize keyboard.resize, keyboard.style
Écran de démarrage splashScreen.launchShowDuration splashScreen.layoutName

Une fois les paramètres d'exécution configurés, ajustez vos paramètres de build pour améliorer les performances sur chaque plateforme.

Paramètres de build spécifiques à la plateforme

Affinez les paramètres de build pour optimiser votre application sur iOS et Android.

Pour iOS, mettez à jour le Info.plist fichier :

<key>NSCameraUsageDescription</key>
<string>Required for document scanning</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Required for store locator</string>

Pour Android, modifiez le android/app/build.gradle:

android {
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 33
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt')
        }
    }
}

Voici quelques points clés pour le build :

Aspect iOS Android
Autorisations Ajouter des entrées dans Info.plist Définir dans AndroidManifest.xml
Icônes Tailles de 20 px à 1024 px Densités de mdpi à xxxhdpi
Écran de démarrage Basé sur Storyboard XML de mise en page
Sortie du build .ipa fichier .aab ou .apk fichier

Mettre à jour vos apps avec Capgo

Interface du dashboard Capgo Live Update

Maintenir apps Capacitor une mise à jour efficace pour iOS et Android est cruciale. Capgo propose un système live update qui respecte les directives des deux plateformes.

Fonctionnalités Capgo

Fonctionnalité Description Avantage par plateforme
Live Update(s) Déployez instantanément sans passage par les stores Garantit une expérience unifiée sur iOS et Android
Chiffrement de bout en bout Sécurise la livraison des mises à jour Répond aux exigences de sécurité des deux plateformes
Système de canaux Cible des groupes d'utilisateurs spécifiques Supports beta testing and phased rollouts
Mises à jour partielles Télécharge uniquement le contenu modifié Saves bandwidth and speeds up updates

Capgo a distribué 23,5 millions de mises à jour, avec un taux de mise à jour de 95 % des utilisateurs actifs en 24 heures [1]. Ces fonctionnalités rendent gestion des mises à jour plus fluide et plus efficace sur toutes les plateformes.

Gestion de la plateforme Capgo

Le système de canaux de Capgo simplifie la gestion des mises à jour. Les développeurs peuvent tester des fonctionnalités spécifiques à iOS avec des utilisateurs bêta, déployer les mises à jour Android par étapes et suivre les métriques de performance sans effort.

La plateforme respecte les exigences de mise à jour OTA d’Apple et de Google [1].

Actuellement, 750 apps en production s’appuient sur Capgo, avec un taux de réussite des mises à jour mondiales de 82 % [1]. Son intégration CI/CD simplifie les déploiements, tandis que le rollback permet aux développeurs de revenir instantanément à une version précédente en cas de problème. Les analytics en temps réel donnent des informations sur les performances des mises à jour et aident à maintenir la stabilité de l’app.

Conclusion

Avantages de la gestion des plateformes

Gérer efficacement les différences de plateforme dans Capacitor améliore le développement cross-platform. Ses outils intégrés de détection et de configuration de plateforme permettent aux développeurs de créer des expériences fluides sur iOS et Android, tout en respectant les normes de conception et les fonctionnalités uniques de chaque plateforme.

En se concentrant sur une bonne gestion des plateformes, les équipes de développement peuvent publier des mises à jour plus rapidement et améliorer la satisfaction des utilisateurs. Des outils comme Capgo ont montré qu'un traitement cohérent des plateformes peut entraîner des taux de réussite des mises à jour plus élevés et de meilleures expériences utilisateur [1].

« Nous pratiquons le développement agile et @Capgo est indispensable pour livrer en continu à nos utilisateurs ! »
– Rodrigo Mantica [1]

Ces conseils peuvent vous guider pour apporter des améliorations pratiques.

Étapes suivantes

Pour maximiser ces avantages, envisagez de mettre en œuvre les stratégies suivantes :

Action Item Avantage
Activer la détection de plateforme S'adapte automatiquement aux besoins d'iOS et d'Android
Implémenter les Live Updates Évite les délais des stores pour les correctifs urgents
Configurer l’analyse Suit les métriques de performance de chaque plateforme
Activer le support du rollback Résout rapidement les problèmes spécifiques aux plateformes

Pour les développeurs qui cherchent à améliorer leur workflow, des outils comme Capgo peuvent simplifier le processus. Des fonctionnalités comme le chiffrement de bout en bout et l'intégration CI/CD aident les équipes à rester cohérentes tout en déployant efficacement les mises à jour.

La réussite de la gestion des plateformes passe par l'utilisation des bons outils et le respect des directives propres à chaque plateforme. En misant sur des stratégies de détection et de gestion robustes, les développeurs peuvent garantir que leurs apps fonctionnent de manière fluide sur iOS et Android.

Poursuivre la lecture : Comment Capacitor gère les différences entre plateformes

Si vous utilisez Comment Capacitor gère les différences de plateforme pour planifier le comportement des médias et de l'interface natifs, connectez-l’à Utiliser @capgo/capacitor-live-activities pour la capacité native dans Utiliser @capgo/capacitor-live-activities @capgo/capacitor-live-activities pour le détail d'implémentation dans @capgo/capacitor-live-activities Utiliser @capgo/capacitor-video-player pour la fonctionnalité native dans la section Utiliser @capgo/capacitor-video-player, @capgo/capacitor-video-player pour les détails d'implémentation dans @capgo/capacitor-video-player, et Utilisation de @capgo/capacitor-native-navigation pour la fonctionnalité native dans Using @capgo/capacitor-native-navigation.

Live updates pour les apps Capacitor

Lorsqu'un bug de la couche web est en ligne, déployez le correctif via Capgo au lieu d'attendre des jours l'approbation des stores. Les utilisateurs reçoivent la mise à jour en arrière-plan, tandis que les changements natifs suivent le circuit de validation habituel.

Les derniers articles du blog

Capgo vous offre les meilleures informations pour créer une application mobile vraiment professionnelle.