Modèles Flutter

Créer une application de chat en temps réel dans Flutter avec Back4App

36min

Introduction

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.

Prérequis

Pour suivre ce tutoriel, vous aurez besoin de :

  • Flutter SDK installé sur votre machine. Suivez le guide d'installation officiel de Flutter.
  • Connaissances de base en Flutter et Dart.
  • Un IDE ou éditeur de texte tel que Visual Studio Code ou Android Studio.
  • Un compte Back4App. Inscrivez-vous pour un compte gratuit sur Back4App.
  • Parse Server SDK pour Flutter ajouté à votre projet.

Aperçu

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.

Étape 1 – Configuration du projet Flutter

1.1. Créer un nouveau projet Flutter

Ouvrez votre terminal et exécutez :

Bash


Naviguez vers le répertoire du projet :

Bash


1.2. Ajouter des dépendances

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

YAML


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.


Étape 2 – Configuration de Back4App

2.1. Créer une nouvelle application Back4App

  1. Connectez-vous à votre tableau de bord Back4App.
  2. Cliquez sur "Créer une nouvelle application".
  3. Entrez un nom pour votre application, par exemple, "ChatApp", et cliquez sur "Créer".

2.2. Configurer les classes et le modèle de données

Nous allons créer les classes suivantes :

  1. Utilisateur (Classe Parse par défaut) : Stocke les informations des utilisateurs.
  2. Message: Stocke les messages de chat.
  3. ChatRoom: Représente un chat entre utilisateurs.

2.2.1. Classe Utilisateur

  • 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.

2.2.2. Classe Message

  • Champs:
    • expéditeur: Pointeur<_User>
    • destinataire: Pointeur<_User>
    • chatRoomId: Chaîne
    • contenu: Chaîne
    • image: Fichier (Optionnel)
    • crééÀ: DateTime (Ajouté automatiquement)

2.2.3. Classe ChatRoom

  • Champs:
    • chatRoomId: Chaîne
    • utilisateurs: Tableau de Pointeur<_User>
    • dernierMessage: Chaîne
    • misÀJour: DateTime (Mis à jour automatiquement)

2.3. Obtenir les identifiants de l'application

  1. Naviguez vers Paramètres de l'application > Sécurité et clés.
  2. Notez votre ID d'application et Clé client.

Étape 3 – Initialiser Parse dans votre application Flutter

Ouvrez lib/main.dart et modifiez-le comme suit :

Dart

  • Remplacez 'YOUR_APPLICATION_ID' et 'YOUR_CLIENT_KEY' par vos véritables identifiants Back4App.

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

4.1. Créer un service d'authentification

Créez un nouveau répertoire appelé services sous lib et ajoutez un fichier nommé auth_service.dart:

Dart


4.2. Créer des écrans de connexion et d'inscription

Créez un nouveau répertoire appelé screens sous lib et ajoutez des fichiers nommés login_screen.dart et signup_screen.dart.

4.2.1. Écran de connexion

Dart


4.2.2. Écran d’inscription

Dart


Étape 5 – Mise en œuvre de la présence de l'utilisateur

5.1. Mettre à jour le statut en ligne de l'utilisateur

Créer une méthode dans AuthService pour mettre à jour le statut en ligne de l'utilisateur :

Dart


5.2. Définir le statut en ligne lors de la connexion et de la déconnexion

Mettre à jour les méthodes de connexion et de déconnexion :

Dart


Étape 6 – Affichage de la liste des contacts

6.1. Créer le service utilisateur

Créer user_service.dart sous services:

Dart


6.2. Créer l'écran d'accueil

Dart


Étape 7 – Mise en œuvre de la messagerie en temps réel avec des requêtes en direct

7.1. Configurer le client de requête en direct

Ajoutez la dépendance suivante dans pubspec.yaml:

YAML


Cela garantit que vous avez la dernière version avec le support de Live Query.

7.2. Initialiser Live Query dans main.dart

Dart

  • Remplacez 'YOUR_APP' par le sous-domaine de votre application Back4App.

7.3. Créer l'écran de chat

Dart


Explication

  • 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.

Étape 8 – Tester l'application

8.1. Exécuter l'application

Dans votre terminal, exécutez :

Bash


8.2. Test de messagerie

  • 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.

Conclusion

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.

Prochaines étapes

  • 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.

Ressources supplémentaires

Bon codage !