Flutter Templates

Comment créer une application d'immersion linguistique en réalité augmentée avec Flutter et Back4App

40min

Introduction

Dans ce tutoriel, vous allez créer une application d'immersion linguistique en réalité augmentée (AR) en utilisant Flutter et Back4App. L'application utilise la technologie AR pour reconnaître des objets via la caméra de l'appareil, superposer des traductions, fournir des informations culturelles et suivre les progrès de l'utilisateur. À la fin de ce tutoriel, vous disposerez d'une application fonctionnelle qui aide les utilisateurs à apprendre de nouvelles langues dans des contextes réels.

Prérequis

Pour compléter ce tutoriel, vous aurez besoin de :

Étape 1 – Configuration du projet Flutter

Tout d'abord, configurez un nouveau projet Flutter où vous développerez l'application d'immersion linguistique AR.

1.1. Créer un nouveau projet Flutter

Ouvrez votre terminal et exécutez la commande suivante :

Bash


Cette commande crée un nouveau projet Flutter nommé ar_language_immersion_app.

1.2. Ouvrez le projet dans votre IDE

Naviguez vers le répertoire du projet et ouvrez-le dans votre IDE préféré (par exemple, Visual Studio Code, Android Studio) :

Bash


Étape 2 – Configuration du backend Back4App

Configurez votre backend sur Back4App pour gérer les données utilisateur, les traductions, les informations culturelles et le suivi des progrès des utilisateurs.

2.1. Créer une nouvelle application sur Back4App

  1. Connectez-vous à votre compte Back4App.
  2. Cliquez sur "Créer une nouvelle application".
  3. Entrez "Application d'immersion linguistique AR" comme nom de l'application.
  4. Cliquez sur "Créer".

2.2. Configuration du modèle de données

Définissez les classes selon le modèle de données :

  • Utilisateur
  • ObjetReconnaissable
  • Traduction
  • InfoCulturelle
  • ProgressionUtilisateur

2.2.1. Créer la classe Utilisateur

La classe Utilisateur est une classe par défaut dans Back4App pour gérer l'authentification des utilisateurs.

  1. Accédez à Core > Navigateur dans votre tableau de bord Back4App.
  2. Vous verrez la classe _User déjà disponible.

2.2.2. Créer la classe RecognizableObject

  1. Cliquez sur "Créer une classe".
  2. Choisissez "Personnalisé" et nommez-le "RecognizableObject".
  3. Cliquez sur "Créer une classe".

Ajoutez les colonnes suivantes :

  • Nom (Chaîne)
  • Catégorie (Chaîne)
  • ImageReference (Fichier)

2.2.3. Créer la classe Translation

  1. Créez une autre classe nommée "Translation".
  2. Ajoutez les colonnes suivantes :
  • objectId (Chaîne) [Par défaut]
  • ObjectID (Pointeur vers RecognizableObject)
  • LanguageCode (Chaîne)
  • TranslatedText (Chaîne)
  • PronunciationGuide (Chaîne)
  • AudioFileReference (Fichier)

2.2.4. Créer la classe CulturalInfo

  1. Créer une classe nommée "CulturalInfo".
  2. Ajouter les colonnes suivantes :
  • ObjectID (Pointeur vers RecognizableObject)
  • LanguageCode (Chaîne)
  • ShortDescription (Chaîne)
  • DetailedInformation (Chaîne)
  • RelatedMediaReferences (Tableau de fichiers)

2.2.5. Créer la classe UserProgress

  1. Créer une classe nommée "UserProgress".
  2. Ajouter les colonnes suivantes :
  • IdentifiantUtilisateur (Pointeur vers l'utilisateur)
  • ObjetsReconnaissables (Tableau d'IDs d'ObjetReconnaissable)
  • TraductionsVues (Tableau d'IDs de Traduction)
  • InfosCulturellesAccédées (Tableau d'IDs d'InfoCulturelle)
  • SériesD'apprentissage (Nombre)
  • ScoresDeCompétence (Dictionnaire)

2.3. Récupérer les Clés de l'Application

  1. Allez à Paramètres de l'Application > Sécurité & Clés.
  2. Notez votre Identifiant d'Application et Clé Client; vous en aurez besoin pour initialiser Parse dans votre application Flutter.

Étape 3 – Intégration du SDK Parse dans Flutter

Intégrez le SDK Parse fourni par Back4App dans votre projet Flutter pour communiquer avec le backend.

3.1. Ajouter des dépendances

Ouvrez pubspec.yaml et ajoutez les dépendances suivantes :

YAML


Exécutez la commande :

Bash


Remarque : Comme il n'existe pas de plugin AR officiel appelé augmented_reality_plugin, vous devrez peut-être utiliser des plugins comme arcore_flutter_plugin pour Android et arkit_plugin pour iOS. Ajustez en fonction de vos plateformes cibles.

3.2. Initialiser Parse dans votre application

Dans lib/main.dart, initialisez Parse lors du démarrage de l'application :

Dart


Remplacez 'YOUR_APPLICATION_ID' et 'YOUR_CLIENT_KEY' par les clés que vous avez obtenues de Back4App.

Étape 4 – Mise en œuvre de l'authentification des utilisateurs

Implémentez les fonctionnalités d'enregistrement et de connexion des utilisateurs.

4.1. Créer l'écran d'authentification

Créez un nouveau fichier lib/screens/auth_screen.dart.

Dart


4.2. Mettre à jour main.dart pour inclure des routes

Dans lib/main.dart, mettez à jour votre MaterialApp pour inclure des routes :

Dart


Étape 5 – Mise en œuvre de la reconnaissance d'objets AR

Configurez la fonctionnalité AR pour reconnaître des objets en utilisant la caméra de l'appareil.

5.1. Configurer les autorisations

Pour Android et iOS, vous devez demander des autorisations pour la caméra.

Android

Dans android/app/src/main/AndroidManifest.xml, ajoutez :

XML


iOS

Dans ios/Runner/Info.plist, ajoutez :

XML


5.2. Implémenter la vue AR

Créez un nouveau fichier lib/screens/ar_view_screen.dart.

Dart


Remarque: La mise en œuvre de la reconnaissance complète d'objets AR est complexe et peut nécessiter l'intégration avec des modèles d'apprentissage automatique comme TensorFlow Lite ou l'utilisation de plateformes comme le ML Kit de Google. Pour ce tutoriel, nous allons simuler la reconnaissance d'objets.

5.3. Simuler la reconnaissance d'objets

À des fins de démonstration, nous allons simuler la reconnaissance d'objets en affichant des objets prédéfinis.

Mettre à jour ar_view_screen.dart:

Dart


Étape 6 – Affichage des superpositions de traduction

Récupérer les traductions de Back4App et les afficher sous forme de superpositions.

6.1. Récupérer les données de traduction

Dans ar_view_screen.dart, ajoutez une méthode pour récupérer les traductions :

Dart


6.2. Mettre à jour l'interface utilisateur pour afficher la traduction

Modifiez la build méthode :

Dart


Étape 7 – Fournir des informations culturelles

Récupérez et affichez des informations culturelles liées à l'objet reconnu.

7.1. Récupérer des informations culturelles

Ajoutez une méthode dans ar_view_screen.dart:

Dart


7.2. Mettre à jour l'interface utilisateur pour afficher les informations culturelles

Modifiez la build méthode:

Dart


Étape 8 – Suivi des progrès de l'utilisateur

Mettez à jour les progrès de l'utilisateur chaque fois qu'il consulte une traduction ou des informations culturelles.

8.1. Mettre à jour UserProgress dans Back4App

Ajoutez une méthode pour mettre à jour la progression :

Dart


8.2. Appeler updateUserProgress lorsqu'un objet est reconnu

Dans setStateselectedObject est mis à jour :

Dart


Étape 9 – Mise en œuvre du mode hors ligne

Assurez-vous que l'application peut fonctionner sans connexion Internet pour les fonctionnalités essentielles.

9.1. Mettre en cache les données localement

Utilisez une base de données locale comme sqflite ou hive pour stocker les traductions et les informations culturelles.

Ajoutez la dépendance hive dans pubspec.yaml:

YAML


Initialisez Hive dans main.dart:

Dart


9.2. Modifier les méthodes de récupération de données pour utiliser le cache

Mettez à jour la méthode getTranslation :

Dart


Répétez des étapes similaires pour getCulturalInfo.

Étape 10 – Tests et Déploiement

Testez l'application en profondeur et préparez-la pour le déploiement.

10.1. Tester sur des appareils physiques

Puisque les fonctionnalités AR nécessitent un accès à la caméra, testez l'application sur de vrais appareils.

10.2. Optimiser les performances

  • Utilisez des structures de données efficaces.
  • Minimisez les re-rendus inutiles dans l'interface utilisateur.
  • Optimisez les images et les médias.

10.3. Préparer le déploiement

  • Mettre à jour les icônes d'application et les écrans de démarrage.
  • Configurer les autorisations de l'application.
  • Construire des versions de publication pour Android et iOS.

Consultez la documentation officielle de Flutter sur la construction et la publication pour plus de détails.

Conclusion

Félicitations ! Vous avez construit une application d'immersion linguistique en AR en utilisant Flutter et Back4App. L'application reconnaît les objets, affiche des traductions et des informations culturelles, suit les progrès de l'utilisateur et fonctionne hors ligne. Vous pouvez améliorer davantage l'application en intégrant une reconnaissance d'objets AR réelle, en ajoutant plus de langues et en améliorant l'UI/UX.

Pour plus d'informations sur les fonctionnalités avancées, envisagez d'explorer :

  • Intégration de modèles d'apprentissage automatique: Utilisez TensorFlow Lite pour la reconnaissance d'objets sur l'appareil.
  • Amélioration des capacités AR: Utilisez des plugins comme arcore_flutter_plugin ou arkit_plugin pour des expériences AR plus riches.
  • Mise en œuvre de la synthèse vocale: Ajoutez une synthèse vocale pour les guides de prononciation en utilisant des packages comme flutter_tts.
  • Amélioration de l'authentification utilisateur: Implémentez des connexions sociales ou une authentification à deux facteurs.

En construisant cette application, vous avez acquis de l'expérience dans le développement Flutter, l'intégration backend avec Back4App, et des fonctionnalités essentielles comme la mise en cache des données hors ligne et le suivi des progrès de l'utilisateur. Continuez à explorer et à améliorer votre application pour créer une expérience d'apprentissage des langues encore plus engageante.