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(viasdkPath) 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'utilisezdependency_overridesque 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.json5du projet HarmonyOS.