Aller au contenu principal

Comment Capacitor gère les différences de plateforme

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

Comment Capacitor gère les différences de plateforme

Capacitor aide les développeurs à compiler des apps pour iOS et Android avec la même base de code, tout en gérant les différences entre plateformes. 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 les code spécifiques à la plateforme.
  • Plugins intégrés: Des API unifiées pour des fonctionnalités comme la Camera, le Storage et la Geolocation.
  • Plugins personnalisés : ajoutez du code natif pour vos besoins spécifiques.
  • Ajustements de l'UI : respectez les règles de design d'iOS (ex. : SF Symbols, boutons arrondis) et d'Android (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 par les utilisateurs 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
Build output .ipa fichier .aab ou .apk fichier

Capacitor comble le fossé entre le développement web et natif, facilitant la création d'apps cross-platform tout en conservant les optimisations spécifiques à chaque plateforme.

Développement cross-platform : explorer CapacitorJS avec …

Comment Capacitor Gérer les Code de la plateforme

Site de documentation du framework Capacitor

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

Détecter les plateformes dans Code

Grâce à l'API de plateforme intégré de Capacitor, détecter la plateforme actuelle est simple. La Capacitor.getPlatform() méthode identifie l'environnement d'exécution, ce qui facilite l'application d'une 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 authentification biométrique, où iOS peut utiliser Face ID et Android s'appuie sur l'authentification par empreinte digitale. En plus de la détection de plateforme, les plugins intégrés de Capacitor simplifient l'intégration native.

Fonctionnalités natives intégrées

Capacitor est livré avec un ensemble de plugins essentiels qui gèrent les différences entre plateformes de manière transparente. Ces plugins gèrent la complexité des implémentations natives tout en offrant une interface JavaScript cohérente :

Plugin Implémentation iOS Implémentation Android
Appareil photo AVFoundation Camera2 API
Stockage UserDefaults SharedPreferences
Géolocalisation CoreLocation LocationManager

Chaque plugin utilise automatiquement les API natives de la plateforme, garantissant performance et fonctionnalités fluides.

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 du Code natif

    @PluginMethod()
    async customFunction(): Promise<void> {
      if (Capacitor.getPlatform() === 'ios') {
        // Add iOS-specific code
      } else {
        // Add Android-specific code
      }
    }
  3. Implémenter les handlers 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 simple à utiliser. Cela garantit la performance et les fonctionnalités sans complexifier le processus de développement.

Directives d'UI spécifiques à la plateforme

Règles de design iOS vs Android

Lors de la conception pour iOS et Android, il est essentiel de respecter les patterns de design natifs. Les utilisateurs de chaque plateforme ont des attentes différentes concernant la navigation, la typographie, les boutons, les headers et les icônes. Voici une comparaison :

É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
Headers Grands titres, centrés App bars, alignées à gauche
Icônes SF Symbols Material Icons

Standards de design cross-platform

Bien que chaque plateforme ait ses propres règles, maintenir une identité de marque cohérente sur les deux est essentiel. Voici comment garantir cette 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);
}

En utilisant Capacitor, vous pouvez intégrer des composants UI spécifiques à chaque plateforme tout en gardant une fonctionnalité constante. Cela aide aussi à 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 respectent ces directives.

Configuration et setup de la plateforme

Après avoir géré votre code de plateforme, une configuration correcte est essentielle pour garantir que votre application fonctionne parfaitement sur iOS et Android.

Paramètres de plateforme dans capacitor.config.json

Utilisez le capacitor.config.json file to define key platform-specific settings:

{
  "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 à prendre en compte :

Option iOS Android
Deep links scheme propriété androidScheme propriété
Barre d'état statusBar.style statusBar.backgroundColor
Clavier keyboard.resize keyboard.resize, keyboard.style
Splash Screen 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

Ajustez finement les paramètres de build pour optimiser votre app 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 20px à 1024px Densités de mdpi à xxxhdpi
Splash Screen Basé sur Storyboard Basé sur XML Layout
Sortie du build .ipa fichier .aab ou .apk fichier

Mettre à jour vos apps avec Capgo

Interface du dashboard Capgo Live Update

Maintenir applications Capacitor une mise à jour efficace sur iOS et Android est crucial. Capgo propose un système live update conforme aux directives des deux plateformes.

Fonctionnalités Capgo

Fonctionnalité Description Avantage plateforme
Live updates Déployez instantanément sans passer par la revue des stores Garantit une expérience unifiée sur iOS et Android
Chiffrement de bout en bout Sécurise la livraison des mises à jour Respecte les 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 livré 23,5 millions de mises à jour, atteignant un taux de mise à jour des utilisateurs actifs de 95 % en 24 heures [1]. Ces fonctionnalités rendent gestion des mises à jour plus fluide et efficace sur toutes les plateformes.

Gestion de plateforme Capgo

Le système de canaux de Capgo facilite la gestion des mises à jour. Les développeurs peuvent tester des fonctionnalités spécifiques à iOS avec des bêta-testeurs, déployer des mises à jour Android de manière progressive et suivre les métriques de performance en toute simplicité.

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

Actuellement, 750 applications en production s'appuient sur Capgo, avec un taux de réussite global des mises à jour de 82 % [1]. Son intégration CI/CD simplifie les déploiements, tandis que la fonction de rollback permet aux développeurs de revenir instantanément à une version précédente en cas de problème. Les analyses en temps réel offrent un aperçu des performances des mises à jour et aident à maintenir la stabilité de l'application.

Conclusion

Avantages de la gestion de plateforme

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 pour iOS et Android, tout en respectant les standards de design et les fonctionnalités propres à chaque plateforme.

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

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

Ces informations peuvent vous guider pour apporter des améliorations concrètes.

Étapes suivantes

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

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

Pour les développeurs souhaitant optimiser leur workflow, des outils comme Capgo peuvent simplifier le processus. Des fonctionnalités telles que le chiffrement de bout en bout et l'intégration CI/CD aident les équipes à maintenir une cohérence tout en déployant des mises à jour efficacement.

Le succès de la gestion multiplateforme dépend de l'utilisation des bons outils et du respect des directives spécifiques à 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.

Continuer après Comment Capacitor gère les différences de plateforme

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 fonctionnalité native de la page 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 capacité native dans « Using @capgo/capacitor-video-player », @capgo/capacitor-video-player pour le détail d'implémentation dans @capgo/capacitor-video-player, et Utiliser @capgo/capacitor-native-navigation pour la capacité native dans « Using @capgo/capacitor-native-navigation. »

Live updates pour les apps Capacitor

Quand un bug de la couche web est en production, 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 apporte les meilleures informations pour créer une application mobile vraiment professionnelle.