Flutter-Vorlagen

Erstellen einer sozialen Netzwerk-App mit Flutter und Back4App

54min

Einführung

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.

Voraussetzungen

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.
  • Ein Back4App-Konto. Melden Sie sich für ein kostenloses Konto bei Back4App an.
  • Parse Server SDK für Flutter in Ihr Projekt integriert. Erfahren Sie, wie Sie es einrichten, indem Sie die Back4App Flutter SDK-Anleitung befolgen.

Schritt 1 – Einrichten des Flutter-Projekts

1.1. Erstellen Sie ein neues Flutter-Projekt

Öffnen Sie Ihr Terminal und führen Sie aus:

Bash


Navigiere zum Projektverzeichnis:

Bash


1.2. Abhängigkeiten hinzufügen

Öffne pubspec.yaml und füge die folgenden Abhängigkeiten hinzu:

YAML


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.

Schritt 2 – Back4App einrichten

2.1. Erstellen Sie eine neue Back4App-Anwendung

  1. Melden Sie sich bei Ihrem Back4App-Dashboard an.
  2. Klicken Sie auf "Neue App erstellen".
  3. Geben Sie einen Namen für Ihre Anwendung ein, z.B. "SocialApp", und klicken Sie auf "Erstellen".

2.2. Richten Sie die Datenmodelle ein

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.

2.2.1. Profilklasse

  1. Navigieren Sie zu der "Datenbank"-Sektion.
  2. Klicken Sie auf "Klasse erstellen".
  3. 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

2.2.2. Beitragsklasse

Erstellen Sie eine "Post"-Klasse mit den folgenden Spalten:

  • Benutzer: Typ Pointer<_User>
  • Inhalt: Typ String
  • Bild: Typ File
  • erstelltAm: Typ Date

2.2.3. FriendRequest-Klasse

Erstellen Sie eine "FriendRequest"-Klasse mit den folgenden Spalten:

  • vonBenutzer: Typ Pointer<_User>
  • zuBenutzer: Typ Pointer<_User>
  • Status: Typ String (Werte: "ausstehend", "akzeptiert", "abgelehnt")

2.2.4. Message-Klasse

Erstellen Sie eine "Message"-Klasse mit den folgenden Spalten:

  • vonBenutzer: Typ Pointer<_User>
  • zuBenutzer: Typ Pointer<_User>
  • Inhalt: Typ String
  • erstelltAm: Typ Date

2.3. Anwendungsanmeldeinformationen erhalten

  1. Navigieren Sie zu App-Einstellungen > Sicherheit & Schlüssel.
  2. Notieren Sie Ihre Anwendungs-ID und Client-Schlüssel.

Schritt 3 – Initialisierung von Parse in Ihrer Flutter-App

Öffnen Sie lib/main.dart und ändern Sie es wie folgt:

Dart

  • Ersetzen Sie 'YOUR_APPLICATION_ID' und 'YOUR_CLIENT_KEY' durch Ihre Back4App-Anmeldeinformationen.
  • Wir verwenden ChangeNotifierProvider zur Verwaltung des Authentifizierungsstatus.

Schritt 4 – Implementierung der Benutzeranmeldung

4.1. Erstellen Sie den Authentifizierungsdienst

Erstellen Sie ein neues Verzeichnis mit dem Namen services unter lib und fügen Sie eine Datei mit dem Namen auth_service.dart:

Dart


4.2. Erstellen Sie die Anmelde- und Registrierungsbildschirme

Erstellen Sie ein Verzeichnis mit dem Namen screens unter lib und fügen Sie login_screen.dart und signup_screen.dart, hinzu.

4.2.1. Anmeldescreen

Dart


4.2.2. Registrierungsbildschirm

Dart


Schritt 5 – Benutzerprofile einrichten

5.1. Profilservice erstellen

Fügen Sie eine Datei mit dem Namen profile_service.dart unter lib/services/:

Dart


5.2. Profilmodell erstellen

Fügen Sie eine Datei mit dem Namen profile.dart unter lib/models/:

Dart


5.3. Profilbildschirm erstellen

Fügen Sie eine Datei mit dem Namen profile_screen.dart unter lib/screens/:

Dart


Schritt 6 – Implementierung von Nachrichten-Feeds

6.1. Erstelle Post-Service

Fügen Sie eine Datei mit dem Namen post_service.dart unter lib/services/:

Dart


6.2. Erstelle Post-Modell

Fügen Sie eine Datei mit dem Namen post.dart unter lib/models/:

Dart


6.3. Erstellen Sie den Startbildschirm

Ändern Sie home_screen.dart unter lib/screens/:

Dart


Schritt 7 – Freundesverbindungen hinzufügen

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.

7.1. Aktualisierung des Datenmodells

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.

7.1.1. Freundesbeziehung zur Benutzerklasse hinzufügen

  1. Gehe in Back4App zur User-Klasse.
  2. Klicke auf die "+"-Schaltfläche, um eine neue Spalte hinzuzufügen.
  3. Benenne die Spalte "friends" und setze den Typ auf Relation <_User>.

7.2. Erstelle einen Freundschaftsanfrage-Service

Erstelle eine Datei mit dem Namen friend_service.dart unter lib/services/:

Dart


7.3. Aktualisieren Sie die Benutzeroberfläche

7.3.1. Benutzer suchen Bildschirm hinzufügen

Erstellen Sie eine Datei mit dem Namen search_users_screen.dart unter lib/screens/:

Dart


7.3.2. Freundschaftsanfragen Bildschirm

Erstellen Sie eine Datei mit dem Namen friend_requests_screen.dart unter lib/screens/:

Dart


7.3.3. Aktualisieren Sie die Navigation des Startbildschirms

In home_screen.dart, fügen Sie die Navigation zu den Bildschirmen für die Benutzersuche und die Freundschaftsanfragen hinzu:

Dart


7.4. Aktualisieren Sie den News Feed, um die Beiträge von Freunden anzuzeigen

Ändern Sie die getPosts Methode in post_service.dart um Beiträge vom Benutzer und seinen Freunden abzurufen.

Dart


Schritt 8 – Implementierung der Nachrichtenübermittlung

In diesem Schritt fügen wir eine Echtzeitkommunikation zwischen Benutzern mit Live-Abfragen hinzu.

8.1. Live-Abfragen in Back4App aktivieren

  1. Gehe in deinem Back4App-App-Dashboard zu App-Einstellungen > Servereinstellungen.
  2. Unter Server-URL, notiere dir deine Server-URL (z.B. https://YOUR_APP_NAME.back4app.io).
  3. Live-Abfragen sind standardmäßig in Back4App aktiviert.

8.2. Live-Abfragen in Flutter einrichten

Das parse_server_sdk_flutter-Paket enthält Unterstützung für Live-Abfragen.

8.3. Messaging-Dienst erstellen

Erstelle eine Datei mit dem Namen message_service.dart unter lib/services/:

Dart


8.4. Nachrichtenmodell erstellen

Füge eine Datei mit dem Namen message.dart unter lib/models/:

Dart


8.5. Erstelle den Chat-Bildschirm

Fügen Sie eine Datei mit dem Namen chat_screen.dart unter lib/screens/:

Dart


8.6. Benutzeroberfläche aktualisieren, um den Chat zu starten

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:

Dart


Schritt 9 – Push-Benachrichtigungen hinzufügen

Die Implementierung von Push-Benachrichtigungen umfasst die Einrichtung von Firebase Cloud Messaging (FCM) und die Integration mit Back4App.

9.1. Firebase Cloud Messaging konfigurieren

9.1.1. Firebase-Projekt einrichten

  1. Gehe zu Firebase Console und erstelle ein neues Projekt.
  2. 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.

9.1.2. Konfigurationsdateien herunterladen

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

9.2. firebase_messaging Paket hinzufügen

Stelle sicher, dass du firebase_messaging zu deiner pubspec.yaml:

YAML


Führe flutter pub get aus, um zu installieren.

9.3. Firebase in Flutter initialisieren

Ändern Sie main.dart:

Dart


9.4. Firebase Messaging konfigurieren

Erstellen Sie eine Datei mit dem Namen push_notification_service.dart unter lib/services/:

Dart


9.5. Aktualisieren Sie main.dart um Push-Benachrichtigungen zu initialisieren

In main.dart, nach der Initialisierung von Parse, initialisieren Sie den PushNotificationService:

Dart


9.6. Push-Benachrichtigungen von Back4App senden

Sie können Push-Benachrichtigungen mit Cloud Code oder direkt von Ihrem Server aus senden.

9.6.1. Benachrichtigung bei Freundschaftsanfrage 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:

Dart


Hinweis: Stellen Sie sicher, dass Sie die Installation mit dem Benutzer verknüpft haben.

9.7. Installation mit Benutzer verknüpfen

Wenn sich ein Benutzer anmeldet, verknüpfen Sie seine Installation mit seinem Benutzerkonto.

In auth_service.dart, nach erfolgreicher Anmeldung:

Dart


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.



Fazit

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.

Nächste Schritte

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

Zusätzliche Ressourcen

Viel Spaß beim Programmieren!