Erstellen einer sozialen Netzwerk-App mit Flutter und Back4App
Die Erstellung einer Social-Networking-App kann eine komplexe Aufgabe sein, aber mit Flutter und Back4App können Sie den Entwicklungsprozess optimieren. Dieses Tutorial führt Sie durch den Aufbau einer voll funktionsfähigen Social-Networking-App, die Benutzerauthentifizierung, Profilverwaltung, Nachrichtenfeeds, Freundeverbindungen, Messaging und Benachrichtigungen umfasst.
Am Ende dieses Tutorials haben Sie eine funktionale Social-Networking-App mit den folgenden Funktionen:
- Benutzerauthentifizierung: Sichere Anmelde- und Registrierungsprozesse.
- Benutzerprofile: Bearbeitbare Profile mit Benutzerinformationen.
- Nachrichtenfeeds: Anzeige von Beiträgen von Freunden und dem Benutzer.
- Freundeverbindungen: Möglichkeit, Freundschaftsanfragen zu senden und zu akzeptieren.
- Messaging: Echtzeit-Chat zwischen Benutzern.
- Benachrichtigungen: Push-Benachrichtigungen für Freundschaftsanfragen, Nachrichten und Beitragsinteraktionen.
Um diesem Tutorial zu folgen, benötigen Sie:
- Flutter SDK auf Ihrem Computer installiert. Folgen Sie der offiziellen Flutter-Installationsanleitung für Ihr Betriebssystem.
- Grundkenntnisse in Flutter und Dart. Wenn Sie neu bei Flutter sind, lesen Sie die Flutter-Dokumentation durch, um sich mit den Grundlagen vertraut zu machen.
- Eine IDE oder einen Texteditor wie Visual Studio Code oder Android Studio.
- Parse Server SDK für Flutter in Ihr Projekt integriert. Erfahren Sie, wie Sie es einrichten, indem Sie die Back4App Flutter SDK-Anleitung befolgen.
Öffnen Sie Ihr Terminal und führen Sie aus:
Navigiere zum Projektverzeichnis:
Öffne pubspec.yaml und füge die folgenden Abhängigkeiten hinzu:
Führe flutter pub get aus, um die Pakete zu installieren.
Hinweis: Wir verwenden:
- parse_server_sdk_flutter für die Back4App-Integration.
- provider für das State Management.
- image_picker zum Auswählen von Profil- und Beitragsbildern.
- cached_network_image für effizientes Laden von Bildern.
- firebase_messaging für Push-Benachrichtigungen.
- uuid zur Generierung eindeutiger IDs.
- Klicken Sie auf "Neue App erstellen".
- Geben Sie einen Namen für Ihre Anwendung ein, z.B. "SocialApp", und klicken Sie auf "Erstellen".
Wir müssen mehrere Klassen in Back4App erstellen:
- Benutzer: Eingebaute Klasse für die Benutzerauthentifizierung.
- Profil: Speichert Benutzerprofilinformationen.
- Beitrag: Speichert Benutzerbeiträge.
- Freundschaftsanfrage: Verwaltet Freundschaftsanfragen zwischen Benutzern.
- Nachricht: Speichert Nachrichten zwischen Benutzern.
- Navigieren Sie zu der "Datenbank"-Sektion.
- Klicken Sie auf "Klasse erstellen".
- Im Modal:
- Wählen Sie "Benutzerdefiniert".
- Geben Sie "Profil" als Klassennamen ein.
- Klicken Sie auf "Klasse erstellen".
Fügen Sie die folgenden Spalten hinzu:
- Benutzer: Typ Pointer<_User>
- Benutzername: Typ String
- Vollständiger Name: Typ String
- Biografie: Typ String
- Profilbild: Typ Datei
Erstellen Sie eine "Post"-Klasse mit den folgenden Spalten:
- Benutzer: Typ Pointer<_User>
- Inhalt: Typ String
- Bild: Typ File
- erstelltAm: Typ Date
Erstellen Sie eine "FriendRequest"-Klasse mit den folgenden Spalten:
- vonBenutzer: Typ Pointer<_User>
- zuBenutzer: Typ Pointer<_User>
- Status: Typ String (Werte: "ausstehend", "akzeptiert", "abgelehnt")
Erstellen Sie eine "Message"-Klasse mit den folgenden Spalten:
- vonBenutzer: Typ Pointer<_User>
- zuBenutzer: Typ Pointer<_User>
- Inhalt: Typ String
- erstelltAm: Typ Date
- Navigieren Sie zu App-Einstellungen > Sicherheit & Schlüssel.
- Notieren Sie Ihre Anwendungs-ID und Client-Schlüssel.
Öffnen Sie lib/main.dart und ändern Sie es wie folgt:
- Ersetzen Sie 'YOUR_APPLICATION_ID' und 'YOUR_CLIENT_KEY' durch Ihre Back4App-Anmeldeinformationen.
- Wir verwenden ChangeNotifierProvider zur Verwaltung des Authentifizierungsstatus.
Erstellen Sie ein neues Verzeichnis mit dem Namen services unter lib und fügen Sie eine Datei mit dem Namen auth_service.dart:
Erstellen Sie ein Verzeichnis mit dem Namen screens unter lib und fügen Sie login_screen.dart und signup_screen.dart, hinzu.
Fügen Sie eine Datei mit dem Namen profile_service.dart unter lib/services/:
Fügen Sie eine Datei mit dem Namen profile.dart unter lib/models/:
Fügen Sie eine Datei mit dem Namen profile_screen.dart unter lib/screens/:
Fügen Sie eine Datei mit dem Namen post_service.dart unter lib/services/:
Fügen Sie eine Datei mit dem Namen post.dart unter lib/models/:
Ändern Sie home_screen.dart unter lib/screens/:
In diesem Schritt werden wir Freundschaftsverbindungen zwischen Benutzern implementieren. Benutzer können Freundschaftsanfragen senden, diese annehmen oder ablehnen und ihre Freundesliste einsehen. Wir werden die Datenmodelle ändern, Dienste erstellen und die Benutzeroberfläche aktualisieren, um diese Funktionalität zu unterstützen.
Wir haben bereits die FriendRequest-Klasse in Back4App mit den folgenden Spalten erstellt:
- fromUser: Zeiger auf _User
- toUser: Zeiger auf _User
- status: Zeichenfolge (Werte: "pending", "accepted", "rejected")
Zusätzlich müssen wir die Freundesliste eines Benutzers verfolgen. Wir können dies tun, indem wir eine friends-Beziehung in der _User-Klasse hinzufügen.
- Gehe in Back4App zur User-Klasse.
- Klicke auf die "+"-Schaltfläche, um eine neue Spalte hinzuzufügen.
- Benenne die Spalte "friends" und setze den Typ auf Relation <_User>.
Erstelle eine Datei mit dem Namen friend_service.dart unter lib/services/:
Erstellen Sie eine Datei mit dem Namen search_users_screen.dart unter lib/screens/:
Erstellen Sie eine Datei mit dem Namen friend_requests_screen.dart unter lib/screens/:
In home_screen.dart, fügen Sie die Navigation zu den Bildschirmen für die Benutzersuche und die Freundschaftsanfragen hinzu:
Ändern Sie die getPosts Methode in post_service.dart um Beiträge vom Benutzer und seinen Freunden abzurufen.
In diesem Schritt fügen wir eine Echtzeitkommunikation zwischen Benutzern mit Live-Abfragen hinzu.
- Gehe in deinem Back4App-App-Dashboard zu App-Einstellungen > Servereinstellungen.
- Unter Server-URL, notiere dir deine Server-URL (z.B. https://YOUR_APP_NAME.back4app.io).
- Live-Abfragen sind standardmäßig in Back4App aktiviert.
Das parse_server_sdk_flutter-Paket enthält Unterstützung für Live-Abfragen.
Erstelle eine Datei mit dem Namen message_service.dart unter lib/services/:
Füge eine Datei mit dem Namen message.dart unter lib/models/:
Fügen Sie eine Datei mit dem Namen chat_screen.dart unter lib/screens/:
Sie können den Chat von der Freundesliste oder dem Bildschirm zur Benutzersuche aus starten.
In der Freundesliste, wenn Freunde angezeigt werden, fügen Sie eine Schaltfläche hinzu, um einen Chat zu starten:
Die Implementierung von Push-Benachrichtigungen umfasst die Einrichtung von Firebase Cloud Messaging (FCM) und die Integration mit Back4App.
- Füge eine Android- und/oder iOS-App zu deinem Projekt hinzu.
- Für Android benötigst du den Paketnamen (applicationId).
- Für iOS benötigst du die Bundle-ID.
- Für Android: Lade google-services.json herunter und platziere es in android/app/.
- Für iOS: Lade GoogleService-Info.plist herunter und füge es deinem Xcode-Projekt unter Runner hinzu.
Stelle sicher, dass du firebase_messaging zu deiner pubspec.yaml:
Führe flutter pub get aus, um zu installieren.
Ändern Sie main.dart:
Erstellen Sie eine Datei mit dem Namen push_notification_service.dart unter lib/services/:
In main.dart, nach der Initialisierung von Parse, initialisieren Sie den PushNotificationService:
Sie können Push-Benachrichtigungen mit Cloud Code oder direkt von Ihrem Server aus senden.
Wenn ein Benutzer eine Freundschaftsanfrage sendet, können Sie eine Push-Benachrichtigung an den Empfänger senden.
In friend_service.dart, ändern Sie die sendFriendRequest Methode:
Hinweis: Stellen Sie sicher, dass Sie die Installation mit dem Benutzer verknüpft haben.
Wenn sich ein Benutzer anmeldet, verknüpfen Sie seine Installation mit seinem Benutzerkonto.
In auth_service.dart, nach erfolgreicher Anmeldung:
Hinweis: Push-Benachrichtigungen erfordern zusätzliche Einstellungen sowohl auf der Client- als auch auf der Serverseite. Sie müssen verschiedene Szenarien behandeln, wie z.B. Hintergrundbenachrichtigungen und Benutzerberechtigungen, die über den Rahmen dieses Tutorials hinausgehen.
Herzlichen Glückwunsch! Sie haben das Fundament einer Social-Networking-App mit Flutter und Back4App erstellt. Diese App umfasst die Benutzerauthentifizierung, das Profilmanagement und eine Nachrichtenfeed-Funktion. Während die Implementierung vollständiger Freundeverbindungen, Messaging und Benachrichtigungen über den Rahmen dieses Tutorials hinausgeht, haben Sie nun die notwendige Struktur, um Ihre App weiter auszubauen.
- Freundeverbindungen: Implementieren Sie Funktionen für Freundschaftsanfragen.
- Messaging: Fügen Sie Echtzeit-Chat-Funktionen mit Live Queries hinzu.
- Benachrichtigungen: Integrieren Sie Push-Benachrichtigungen für die Benutzerbindung.
- UI-Verbesserungen: Verbessern Sie die Benutzeroberfläche und das Benutzererlebnis.
- Sicherheit: Stellen Sie die Datensicherheit und den Datenschutz sicher, indem Sie geeignete ACLs in Back4App festlegen.
Viel Spaß beim Programmieren!