Modèles Flutter

Créer une application de réseau social avec Flutter et Back4App

54min

Introduction

Créer une application de réseau social peut être une tâche complexe, mais avec Flutter et Back4App, vous pouvez simplifier le processus de développement. Ce tutoriel vous guidera à travers la création d'une application de réseau social complète qui inclut l'authentification des utilisateurs, la gestion des profils, les fils d'actualités, les connexions d'amis, la messagerie et les notifications.

À la fin de ce tutoriel, vous aurez une application de réseau social fonctionnelle avec les fonctionnalités suivantes :

  • Authentification des utilisateurs: Processus d'inscription et de connexion sécurisés.
  • Profils d'utilisateurs: Profils modifiables avec des informations sur l'utilisateur.
  • Fils d'actualités: Afficher les publications des amis et de l'utilisateur.
  • Connexions d'amis: Possibilité d'envoyer et d'accepter des demandes d'amis.
  • Messagerie: Chat en temps réel entre les utilisateurs.
  • Notifications: Notifications push pour les demandes d'amis, les messages et les interactions sur les publications.

Prérequis

Pour suivre ce tutoriel, vous aurez besoin de :

  • Flutter SDK installé sur votre machine. Suivez le guide d'installation officiel de Flutter pour votre système d'exploitation.
  • Connaissances de base en Flutter et Dart. Si vous êtes nouveau dans Flutter, consultez la documentation Flutter pour vous familiariser avec les bases.
  • 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. Apprenez à le configurer en suivant le Guide Back4App Flutter SDK.

Étape 1 – Configuration du projet Flutter

1.1. Créer un nouveau projet Flutter

Ouvrez votre terminal et exécutez :

Bash


Accédez au 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.

Remarque: Nous utilisons :

  • parse_server_sdk_flutter pour l'intégration Back4App.
  • provider pour la gestion d'état.
  • image_picker pour sélectionner des images de profil et de publication.
  • cached_network_image pour un chargement d'images efficace.
  • firebase_messaging pour les notifications push.
  • uuid pour 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, "SocialApp", et cliquez sur "Créer".

2.2. Configurer les modèles de données

Nous devrons créer plusieurs classes dans Back4App:

  • Utilisateur: Classe intégrée pour l'authentification des utilisateurs.
  • Profil: Stocke les informations de profil de l'utilisateur.
  • Publication: Stocke les publications des utilisateurs.
  • Demande d'ami: Gère les demandes d'amis entre les utilisateurs.
  • Message: Stocke les messages entre les utilisateurs.

2.2.1. Classe de Profil

  1. Naviguez vers la "Base de données" section.
  2. Cliquez sur "Créer une classe".
  3. Dans la modal:
    • Sélectionnez "Personnalisé".
    • Entrez "Profil" comme nom de classe.
    • Cliquez sur "Créer une classe".

Ajoutez les colonnes suivantes:

  • utilisateur: Type Pointer<_User>
  • nom d'utilisateur: Type String
  • nomComplet: Type String
  • bio: Type String
  • photoDeProfil: Type Fichier

2.2.2. Classe de Post

Créer un "Post" classe avec les colonnes suivantes :

  • utilisateur: Type Pointer<_User>
  • contenu: Type String
  • image: Type File
  • crééÀ: Type Date

2.2.3. Classe FriendRequest

Créer un "FriendRequest" classe avec les colonnes suivantes :

  • deUtilisateur: Type Pointer<_User>
  • àUtilisateur: Type Pointer<_User>
  • statut: Type String (Valeurs : "en attente", "accepté", "rejeté")

2.2.4. Classe Message

Créer un "Message" classe avec les colonnes suivantes :

  • deUtilisateur: Type Pointer<_User>
  • àUtilisateur: Type Pointer<_User>
  • contenu: Type String
  • crééÀ: Type Date

2.3. Obtenir les identifiants de l'application

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

Étape 3 – Initialisation de 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 identifiants Back4App.
  • Nous utilisons ChangeNotifierProvider pour gérer l'état d'authentification.

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

4.1. Créer le 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 les écrans de connexion et d'inscription

Créez un répertoire appelé screens sous lib et ajoutez login_screen.dart et signup_screen.dart.

4.2.1. Écran de connexion

Dart


4.2.2. Écran d’inscription

Dart


Étape 5 – Configuration des profils utilisateurs

5.1. Créer le service de profil

Ajoutez un fichier nommé profile_service.dart sous lib/services/:

Dart


5.2. Créer le modèle de profil

Ajoutez un fichier nommé profile.dart sous lib/models/:

Dart


5.3. Créer l'écran de profil

Ajoutez un fichier nommé profile_screen.dart sous lib/screens/:

Dart


Étape 6 – Mise en œuvre des flux d'actualités

6.1. Créer le service de publication

Ajoutez un fichier nommé post_service.dart sous lib/services/:

Dart


6.2. Créer le modèle de publication

Ajoutez un fichier nommé post.dart sous lib/models/:

Dart


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

Modifier home_screen.dart sous lib/screens/:

Dart


Étape 7 – Ajout de connexions d'amis

Dans cette étape, nous allons mettre en œuvre des connexions d'amis entre les utilisateurs. Les utilisateurs peuvent envoyer des demandes d'amis, les accepter ou les rejeter, et consulter leur liste d'amis. Nous allons modifier les modèles de données, créer des services et mettre à jour l'interface utilisateur pour prendre en charge cette fonctionnalité.

7.1. Mettre à jour le modèle de données

Nous avons déjà créé la FriendRequest classe dans Back4App avec les colonnes suivantes :

  • fromUser: Pointeur vers _User
  • toUser: Pointeur vers _User
  • status: Chaîne (Valeurs : "en attente", "accepté", "rejeté")

De plus, nous devons suivre la liste d'amis d'un utilisateur. Nous pouvons le faire en ajoutant une relation dans la classe _User.

7.1.1. Ajouter une relation d'amis à la classe Utilisateur

  1. Dans Back4App, allez à la classe Utilisateur.
  2. Cliquez sur le "+" bouton pour ajouter une nouvelle colonne.
  3. Nommez la colonne "amis" et définissez le type sur Relation <_User>.

7.2. Créer un service de demande d'amis

Créez un fichier nommé friend_service.dart sous lib/services/:

Dart


7.3. Mettre à jour l'interface utilisateur

7.3.1. Ajouter l'écran de recherche d'utilisateurs

Créez un fichier nommé search_users_screen.dart sous lib/screens/:

Dart


7.3.2. Ajouter l'écran des demandes d'amis

Créez un fichier nommé friend_requests_screen.dart sous lib/screens/:

Dart


7.3.3. Mettre à jour la navigation de l'écran d'accueil

Dans home_screen.dart, ajoutez la navigation vers les écrans de recherche d'utilisateurs et de demandes d'amis :

Dart


7.4. Mettre à jour le fil d'actualités pour afficher les publications des amis

Modifier le getPosts méthode dans post_service.dart pour récupérer les publications de l'utilisateur et de ses amis.

Dart


Étape 8 – Mise en œuvre de la messagerie

Dans cette étape, nous allons ajouter un messaging en temps réel entre les utilisateurs en utilisant les Live Queries.

8.1. Activer les Live Queries dans Back4App

  1. Dans le tableau de bord de votre application Back4App, allez à App Settings > Server Settings.
  2. Sous Server URL, notez votre URL de serveur (par exemple, https://YOUR_APP_NAME.back4app.io).
  3. Les Live Queries sont activées par défaut sur Back4App.

8.2. Configurer les Live Queries dans Flutter

Le parse_server_sdk_flutter package inclut le support des Live Queries.

8.3. Créer un service de messagerie

Créez un fichier nommé message_service.dart sous lib/services/:

Dart


8.4. Créer un modèle de message

Ajoutez un fichier nommé message.dart sous lib/models/:

Dart


8.5. Créer l'écran de chat

Ajoutez un fichier nommé chat_screen.dart sous lib/screens/:

Dart


8.6. Mettre à jour l'interface utilisateur pour initier le chat

Vous pouvez initier le chat depuis la liste d'amis ou l'écran de recherche d'utilisateurs.

Dans la liste d'amis, lors de l'affichage des amis, ajoutez un bouton pour commencer un chat :

Dart


Étape 9 – Ajout de notifications push

La mise en œuvre des notifications push implique la configuration de Firebase Cloud Messaging (FCM) et son intégration avec Back4App.

9.1. Configurer Firebase Cloud Messaging

9.1.1. Configurer le projet Firebase

  1. Allez sur Firebase Console et créez un nouveau projet.
  2. Ajoutez une application Android et/ou iOS à votre projet.
    • Pour Android, vous avez besoin du nom du package (applicationId).
    • Pour iOS, vous avez besoin de l'identifiant de bundle.

9.1.2. Télécharger les fichiers de configuration

  • Pour Android : Téléchargez google-services.json et placez-le dans android/app/.
  • Pour iOS : Téléchargez GoogleService-Info.plist et ajoutez-le à votre projet Xcode sous Runner.

9.2. Ajouter le package firebase_messaging

Assurez-vous d'avoir ajouté firebase_messaging à votre pubspec.yaml:

YAML


Exécutez flutter pub get pour installer.

9.3. Initialiser Firebase dans Flutter

Modifier main.dart:

Dart


9.4. Configurer Firebase Messaging

Créer un fichier nommé push_notification_service.dart sous lib/services/:

Dart


9.5. Mettre à jour main.dart pour initialiser les notifications push

Dans main.dart, après avoir initialisé Parse, initialisez le PushNotificationService:

Dart


9.6. Envoi de notifications push depuis Back4App

Vous pouvez envoyer des notifications push en utilisant Cloud Code ou directement depuis votre serveur.

9.6.1. Envoi de notification lors d'une demande d'ami

Lorsqu'un utilisateur envoie une demande d'ami, vous pouvez envoyer une notification push au destinataire.

Dans friend_service.dart, modifiez la sendFriendRequest méthode :

Dart


Note: Assurez-vous d'avoir associé l'installation avec l'utilisateur.

9.7. Associer l'installation avec l'utilisateur

Lorsqu'un utilisateur se connecte, associez son installation avec son compte utilisateur.

Dans auth_service.dart, après une connexion réussie :

Dart


Remarque: Les notifications push nécessitent une configuration supplémentaire à la fois du côté client et serveur. Vous devez gérer différents scénarios, tels que les notifications en arrière-plan et les autorisations des utilisateurs, qui dépassent le cadre de ce tutoriel.



Conclusion

Félicitations ! Vous avez construit les bases d'une application de réseau social en utilisant Flutter et Back4App. Cette application comprend l'authentification des utilisateurs, la gestion des profils et une fonctionnalité de fil d'actualités. Bien que la mise en œuvre de connexions d'amis complètes, de messagerie et de notifications dépasse le cadre de ce tutoriel, vous avez maintenant la structure nécessaire pour continuer à développer votre application.

Prochaines étapes

  • Connexions d'amis: Implémentez des fonctionnalités de demande d'amis.
  • Messagerie: Ajoutez des fonctionnalités de chat en temps réel en utilisant les requêtes en direct.
  • Notifications: Intégrez des notifications push pour l'engagement des utilisateurs.
  • Améliorations de l'UI: Améliorez l'interface utilisateur et l'expérience utilisateur.
  • Sécurité: Assurez la sécurité des données et la confidentialité en définissant des ACL appropriées dans Back4App.

Ressources supplémentaires

Bon codage !