Adaptation d'un projet Flutter existant à la plateforme HarmonyOS

Pour intégrer la prise en charge de HarmonyOS dans un projet Flutter existant, une approche modulaire et la gestion de versions du SDK sont essentielles. Ce guide présente une méthode pratique avec des exemples de code modifiés pour minimiser les ajustements nécessaires.

Configuration initiale

Installation de FVM pour la gestion des SDK Flutter

Commencez par installer FVM (Flutter Version Management) via la commande suivante :

dart pub global activate fvm

Installation des versions du SDK Flutter

Utilisez FVM pour installer la version officielle de Flutter (par exemple, 3.22) ainsi que la version communautaire adaptée pour HarmonyOS (par exemple, custom_3.22.0).

fvm install 3.22
fvm install custom_3.22.0

Mise en place de l'environnement de développement HarmonyOS

Référez-vous aux guides d'installation dédiés pour configurer les outils nécessaires à la compilation pour HarmonyOS.

Structuration du projet

Création de l'arborescence des répertoires

Initialisez un nouveau projet avec une structure modulaire. Exemple de commande pour créer le répertoire racine :

mkdir projet-flutter-harmony

Dans le répertoire racine, configurez la version du SDK avec FVM. Cela génère des fichiers de configuration spécifiques.

cd projet-flutter-harmony
fvm use custom_3.22.0

Organisation des packages

Structurez le projet en packages séparés pour une meilelure maintenabilité. Voici un exemple simplifié :

.
├── packages
│   ├── applications
│   │   ├── app_standard  # Application pour iOS, Android, etc.
│   │   └── app_harmony   # Application spécifique à HarmonyOS
│   ├── bibliotheques
│   │   ├── communs       # Code Dart pur, indépendant des plateformes
│   │   └── composants    # Bibliothèques de composants réutilisables
│   └── modules
│       ├── accueil
│       ├── profil
│       └── parametres
├── melos.yaml
└── pubspec.yaml

Initialisez chaque package avec la commande Flutter appropriée, par exemple :

fvm flutter create --template package .

Gestion des dépendances avec melos

Exécutez la commande suivante pour lier les packages et installer les dépendances :

melos bootstrap

Développement des composants d'application

Application standard

Pour les plateformes non HarmonyOS (comme iOS ou Android), créez un projet d'application dans le package correspondant.

cd packages/applications
fvm flutter create --template app --org com.exemple.flutter app_standard

Dans le fichier pubspec.yaml de ce projet, ajoutez les dépendances vers les packages communs et modules :

dependencies:
  communs:
    path: '../../bibliotheques/communs'
  accueil:
    path: '../../modules/accueil'
  profil:
    path: '../../modules/profil'

Application HarmonyOS

Pour HarmonyOS, créez un projet dédié après avoir basculé le SDK vers la version adaptée.

cd packages/applications
fvm flutter create --template app --platforms ohos --org com.exemple.flutter app_harmony

Dans le fichier pubspec.yaml de app_harmony, configurez les remplacements de dépendances pour les bibliothèques tierces compatibles avec HarmonyOS :

dependency_overrides:
  bibliothèque_webview:
    git:
      url: https://gitee.com/openharmony-sig/bibliothèque_webview.git
      path: "bibliothèque_webview"

Exécutez fvm flutter pub get après chaque modification pour mettre à jour les dépendances.

Exécution et débogage

Pour tester l'application HarmonyOS, ouvrez le sous-dossier ohos du projet dans l'IDE Deveco. Connfigurez la signature du projet via les paramètres de structure. Ensuite, lancez l'application avec :

fvm flutter run

Points clés à retenir

  • La configuration de FVM dans le fichier melos.yaml (via sdkPath) assure que melos utilise la version correcte du SDK Flutter.
  • Chaque changement de version du SDK Flutter modifie les fichiers de configuration dans .fvm/ et .vscode/. Redémarrez l'IDE si nécessaire.
  • Dans app_harmony/pubspec.yaml, n'utilisez dependency_overrides que pour les bibliothèques tierces nécessitant une adaptation à HarmonyOS.
  • Pour les bibliothèques tierces, celles écrites entièrement en Dart fonctionnent généralement sans modification. Celles avec des implémentations natives peuvent nécessiter une adaptation. Consultez les dépôts dédiés ou les plans d'adaptation pour vérifier la compatibilité.
  • Si vous supprimez un plugin, il peut être nécessaire de mettre à jour manuellement les dépendances dans le fichier ohos/oh-package.json5 du projet HarmonyOS.

Étiquettes: Flutter HarmonyOS FVM melos Dart

Publié le 1 juillet à 04h33