Créer une application de chat en temps réel dans Flutter avec Back4App
Créer une application de chat implique de gérer des données en temps réel, l'authentification des utilisateurs, la gestion des médias et un stockage de données efficace. Dans ce tutoriel, vous apprendrez à construire une application de chat en temps réel dans Flutter qui prend en charge les conversations individuelles et de groupe, les statuts des messages et le partage de médias. Nous utiliserons Back4App—un backend en tant que service alimenté par Parse Server—pour gérer les fonctionnalités backend.
À la fin de ce tutoriel, vous aurez une application de chat entièrement fonctionnelle avec les fonctionnalités suivantes :
- Authentification des utilisateurs: Processus d'inscription et de connexion sécurisés.
- Messagerie en temps réel: Livraison instantanée des messages utilisant des requêtes en direct.
- Présence des utilisateurs: Suivi du statut en ligne/hors ligne des utilisateurs.
- Stockage de médias: Envoi et réception d'images dans les chats.
- Historique des messages: Conservation des historiques de chat pour les utilisateurs.
Pour suivre ce tutoriel, vous aurez besoin de :
- Connaissances de base en Flutter et Dart.
- Un IDE ou éditeur de texte tel que Visual Studio Code ou Android Studio.
- Parse Server SDK pour Flutter ajouté à votre projet.
Nous allons construire une application de chat avec les composants suivants :
- Authentification des utilisateurs: Les utilisateurs peuvent s'inscrire et se connecter.
- Liste de contacts: Afficher une liste d'utilisateurs avec qui discuter.
- Écran de chat: Interface de messagerie en temps réel.
- Partage de médias: Capacité d'envoyer et de recevoir des images.
- Statut en ligne: Afficher le statut en ligne/hors ligne des utilisateurs.
Ouvrez votre terminal et exécutez :
Naviguez vers le répertoire du projet :
Ouvrez pubspec.yaml et ajoutez les dépendances suivantes :
Exécutez flutter pub get pour installer les paquets.
- parse_server_sdk_flutter: Interagir avec Back4App.
- image_picker: Choisir des images depuis la galerie ou l'appareil photo.
- cached_network_image: Chargement et mise en cache efficaces des images.
- uuid: Générer des identifiants uniques.
- Cliquez sur "Créer une nouvelle application".
- Entrez un nom pour votre application, par exemple, "ChatApp", et cliquez sur "Créer".
Nous allons créer les classes suivantes :
- Utilisateur (Classe Parse par défaut) : Stocke les informations des utilisateurs.
- Message: Stocke les messages de chat.
- ChatRoom: Représente un chat entre utilisateurs.
- Champs:
- nom d'utilisateur: Chaîne
- mot de passe: Chaîne
- email: Chaîne
- estEnLigne: Booléen
- avatar: Fichier (Optionnel)
Le User classe est intégrée ; nous devons juste nous assurer qu'elle a les champs supplémentaires.
- Champs:
- expéditeur: Pointeur<_User>
- destinataire: Pointeur<_User>
- chatRoomId: Chaîne
- contenu: Chaîne
- image: Fichier (Optionnel)
- crééÀ: DateTime (Ajouté automatiquement)
- Champs:
- chatRoomId: Chaîne
- utilisateurs: Tableau de Pointeur<_User>
- dernierMessage: Chaîne
- misÀJour: DateTime (Mis à jour automatiquement)
- Naviguez vers Paramètres de l'application > Sécurité et clés.
- Notez votre ID d'application et Clé client.
Ouvrez lib/main.dart et modifiez-le comme suit :
- Remplacez 'YOUR_APPLICATION_ID' et 'YOUR_CLIENT_KEY' par vos véritables identifiants Back4App.
Créez un nouveau répertoire appelé services sous lib et ajoutez un fichier nommé auth_service.dart:
Créez un nouveau répertoire appelé screens sous lib et ajoutez des fichiers nommés login_screen.dart et signup_screen.dart.
Créer une méthode dans AuthService pour mettre à jour le statut en ligne de l'utilisateur :
Mettre à jour les méthodes de connexion et de déconnexion :
Créer user_service.dart sous services:
Ajoutez la dépendance suivante dans pubspec.yaml:
Cela garantit que vous avez la dernière version avec le support de Live Query.
- Remplacez 'YOUR_APP' par le sous-domaine de votre application Back4App.
- ParseLiveListWidget: Un widget qui écoute les mises à jour de requêtes en direct et se reconstruit lorsque les données changent.
- sendMessage(): Envoie un message texte ou une image.
- pickImage(): Utilise image_picker pour sélectionner une image et l'envoie comme message.
- setupLiveQuery(): Configure une requête en direct pour écouter les nouveaux messages dans la salle de chat.
Dans votre terminal, exécutez :
- Ouvrez l'application sur deux appareils ou émulateurs.
- Inscrivez-vous ou connectez-vous avec des comptes utilisateurs différents.
- À partir d'un compte, sélectionnez l'autre utilisateur dans la liste de contacts.
- Envoyez des messages et des images ; ils devraient apparaître en temps réel sur les deux appareils.
Félicitations ! Vous avez construit une application de chat en temps réel en Flutter en utilisant Back4App. Cette application prend en charge :
- Authentification des utilisateurs: Connexion et inscription sécurisées.
- Messagerie en temps réel: Mises à jour instantanées utilisant des requêtes en direct.
- Présence des utilisateurs: Suivi du statut en ligne/hors ligne.
- Partage de médias: Envoi et réception d'images.
- Historique des messages: Persistance des messages de chat.
- Discussions de groupe: Étendre l'application pour prendre en charge les conversations de groupe.
- Statuts des messages: Implémenter des accusés de lecture et des indicateurs de saisie.
- Notifications push: Envoyer des notifications pour les nouveaux messages lorsque l'application est en arrière-plan.
- Photos de profil: Permettre aux utilisateurs de télécharger des avatars.
- Améliorations de la sécurité: Sécuriser les données avec des ACL et des autorisations basées sur les rôles.
Bon codage !