Wie man eine AR-Sprachimmersion-App mit Flutter und Back4App erstellt
In diesem Tutorial werden Sie eine Augmented Reality (AR) Sprachimmersion-App mit Flutter und Back4App erstellen. Die App nutzt AR-Technologie, um Objekte über die Kamera des Geräts zu erkennen, Übersetzungen zu überlagern, kulturelle Informationen bereitzustellen und den Fortschritt der Benutzer zu verfolgen. Am Ende dieses Tutorials haben Sie eine funktionale App, die Benutzern hilft, neue Sprachen in realen Kontexten zu lernen.
Um dieses Tutorial abzuschließen, benötigen Sie:
- Flutter installiert auf Ihrem lokalen Rechner. Wenn Sie es noch nicht eingerichtet haben, folgen Sie der Flutter-Installationsanleitung.
- Eine Back4App-Anwendung. Erstellen Sie eine neue App, indem Sie der Getting Started with Back4App-Anleitung folgen.
- Grundkenntnisse in Dart und Flutter. Machen Sie sich gegebenenfalls mit der Dokumentation von Flutter vertraut.
- Grundverständnis von RESTful APIs und asynchroner Programmierung in Dart.
Zuerst richten Sie ein neues Flutter-Projekt ein, in dem Sie die AR-Sprachimmersion-App entwickeln werden.
Öffnen Sie Ihr Terminal und führen Sie den folgenden Befehl aus:
Dieser Befehl erstellt ein neues Flutter-Projekt mit dem Namen ar_language_immersion_app.
Navigieren Sie zum Projektverzeichnis und öffnen Sie es in Ihrer bevorzugten IDE (z. B. Visual Studio Code, Android Studio):
Richten Sie Ihr Backend auf Back4App ein, um Benutzerdaten, Übersetzungen, kulturelle Informationen und die Verfolgung des Benutzerfortschritts zu verwalten.
- Melden Sie sich bei Ihrem Back4App-Konto an.
- Klicken Sie auf "Neue App erstellen".
- Geben Sie "AR Language Immersion App" als App-Namen ein.
- Klicken Sie auf "Erstellen".
Definieren Sie die Klassen gemäß dem Datenmodell:
- Benutzer
- ErkennbaresObjekt
- Übersetzung
- KulturInfo
- BenutzerFortschritt
2.2.1. Erstellen Sie die Benutzerklasse
Die Benutzer-Klasse ist eine Standardklasse in Back4App zur Handhabung der Benutzerauthentifizierung.
- Navigieren Sie zu Core > Browser in Ihrem Back4App-Dashboard.
- Sie werden die _Benutzer-Klasse bereits verfügbar sehen.
2.2.2. Erstellen Sie die RecognizableObject-Klasse
- Klicken Sie auf "Klasse erstellen".
- Wählen Sie "Benutzerdefiniert" und benennen Sie es "RecognizableObject".
- Klicken Sie "Klasse erstellen".
Fügen Sie die folgenden Spalten hinzu:
- Name (String)
- Kategorie (String)
- ImageReference (Datei)
2.2.3. Erstellen Sie die Translation-Klasse
- Erstellen Sie eine weitere Klasse mit dem Namen "Translation".
- Fügen Sie die folgenden Spalten hinzu:
- objectId (String) [Standard]
- ObjectID (Zeiger auf RecognizableObject)
- LanguageCode (String)
- TranslatedText (String)
- PronunciationGuide (String)
- AudioFileReference (Datei)
2.2.4. Erstellen Sie die CulturalInfo-Klasse
- Erstellen Sie eine Klasse mit dem Namen "CulturalInfo".
- Fügen Sie die folgenden Spalten hinzu:
- ObjectID (Zeiger auf RecognizableObject)
- LanguageCode (String)
- ShortDescription (String)
- DetailedInformation (String)
- RelatedMediaReferences (Array von Dateien)
2.2.5. Erstellen Sie die UserProgress-Klasse
- Erstellen Sie eine Klasse mit dem Namen "UserProgress".
- Fügen Sie die folgenden Spalten hinzu:
- Benutzer-ID (Zeiger auf Benutzer)
- ErkannteObjekte (Array von erkennbaren Objekt-IDs)
- ÜbersetzungenAngesehen (Array von Übersetzungs-IDs)
- KulturelleInfoZugriff (Array von kulturellen Info-IDs)
- Lernphasen (Zahl)
- Fähigkeitswerte (Wörterbuch)
- Gehe zu App-Einstellungen > Sicherheit & Schlüssel.
- Notiere deine Anwendungs-ID und Client-Schlüssel; du wirst sie benötigen, um Parse in deiner Flutter-App zu initialisieren.
Integrieren Sie das von Back4App bereitgestellte Parse SDK in Ihr Flutter-Projekt, um mit dem Backend zu kommunizieren.
Öffnen Sie pubspec.yaml und fügen Sie die folgenden Abhängigkeiten hinzu:
Führen Sie den Befehl aus:
Hinweis: Da es kein offizielles AR-Plugin mit dem Namen augmented_reality_plugin, müssen Sie möglicherweise Plugins wie arcore_flutter_plugin für Android und arkit_plugin für iOS verwenden. Passen Sie dies entsprechend Ihren Zielplattformen an.
In lib/main.dart, initialisiere Parse beim Start der App:
Ersetze 'YOUR_APPLICATION_ID' und 'YOUR_CLIENT_KEY' mit den Schlüsseln, die du von Back4App erhalten hast.
Implementieren Sie die Benutzerregistrierungs- und Anmeldefunktionen.
Erstellen Sie eine neue Datei lib/screens/auth_screen.dart.
In lib/main.dart, aktualisieren Sie Ihre MaterialApp um Routen einzuschließen:
Richten Sie die AR-Funktionalität ein, um Objekte mit der Kamera des Geräts zu erkennen.
Für sowohl Android als auch iOS müssen Sie Kameraberechtigungen anfordern.
Android
In android/app/src/main/AndroidManifest.xml, hinzufügen:
iOS
In ios/Runner/Info.plist, hinzufügen:
Erstellen Sie eine neue Datei lib/screens/ar_view_screen.dart.
Hinweis: Die Implementierung der vollständigen AR-Objekterkennung ist komplex und kann die Integration mit maschinellen Lernmodellen wie TensorFlow Lite oder die Verwendung von Plattformen wie Googles ML Kit erfordern. Für dieses Tutorial werden wir die Objekterkennung simulieren.
Zu Demonstrationszwecken werden wir die Objekterkennung simulieren, indem wir vordefinierte Objekte anzeigen.
Aktualisieren Sie ar_view_screen.dart:
Übersetzungen von Back4App abrufen und als Überlagerungen anzeigen.
In ar_view_screen.dart, fügen Sie eine Methode hinzu, um Übersetzungen abzurufen:
Ändern Sie die build Methode:
Abrufen und Anzeigen kultureller Informationen, die mit dem erkannten Objekt verbunden sind.
Fügen Sie eine Methode in ar_view_screen.dart:
Ändern Sie die build Methode:
Aktualisieren Sie den Fortschritt des Benutzers jedes Mal, wenn er eine Übersetzung oder kulturelle Informationen anzeigt.
Fügen Sie eine Methode hinzu, um den Fortschritt zu aktualisieren:
In setState wo selectedObject aktualisiert wird:
Stellen Sie sicher, dass die App ohne Internetverbindung für die Kernfunktionen funktionieren kann.
Verwenden Sie eine lokale Datenbank wie sqflite oder hive um Übersetzungen und kulturelle Informationen zu speichern.
Fügen Sie die hive Abhängigkeit in pubspec.yaml:
Initialisieren Sie Hive in main.dart:
Aktualisieren Sie die getTranslation Methode:
Wiederholen Sie ähnliche Schritte für getCulturalInfo.
Testen Sie die App gründlich und bereiten Sie sie auf die Bereitstellung vor.
Da AR-Funktionen Kamerazugriff erfordern, testen Sie die App auf echten Geräten.
- Verwenden Sie effiziente Datenstrukturen.
- Minimieren Sie unnötige Neuzeichnungen in der Benutzeroberfläche.
- Optimieren Sie Bild- und Medienressourcen.
- Aktualisieren Sie App-Icons und Splashscreens.
- Konfigurieren Sie die App-Berechtigungen.
- Erstellen Sie Release-Versionen für Android und iOS.
Verweisen Sie auf die offizielle Dokumentation von Flutter zu Erstellung und Veröffentlichung für weitere Details.
Herzlichen Glückwunsch! Sie haben eine AR-Sprachimmersion-App mit Flutter und Back4App erstellt. Die App erkennt Objekte, zeigt Übersetzungen und kulturelle Informationen an, verfolgt den Fortschritt der Benutzer und funktioniert offline. Sie können die App weiter verbessern, indem Sie die echte AR-Objekterkennung integrieren, weitere Sprachen hinzufügen und die UI/UX verbessern.
Für weitere Informationen zu erweiterten Funktionen sollten Sie Folgendes erkunden:
- Integration von Machine Learning-Modellen: Verwenden Sie TensorFlow Lite für die Objekterkennung auf dem Gerät.
- Verbesserung der AR-Funktionen: Nutzen Sie Plugins wie arcore_flutter_plugin oder arkit_plugin für reichhaltigere AR-Erlebnisse.
- Implementierung von Text-to-Speech: Fügen Sie Sprachsynthese für Aussprachehilfen mit Paketen wie flutter_tts hinzu.
- Verbesserung der Benutzer-Authentifizierung: Implementieren Sie soziale Logins oder eine Zwei-Faktor-Authentifizierung.
Durch den Bau dieser App haben Sie Erfahrung in der Flutter-Entwicklung, der Backend-Integration mit Back4App und grundlegenden Funktionen wie Offline-Daten-Caching und Benutzerfortschrittsverfolgung gesammelt. Erkunden Sie weiter und verbessern Sie Ihre App, um ein noch ansprechenderes Spracherlebnis zu schaffen.