Как создать приложение для языкового погружения с дополненной реальностью на Flutter и Back4App
В этом учебном пособии вы создадите приложение для погружения в язык с дополненной реальностью (AR) с использованием Flutter и Back4App. Приложение использует технологии AR для распознавания объектов через камеру устройства, наложения переводов, предоставления культурной информации и отслеживания прогресса пользователя. К концу этого учебного пособия у вас будет функциональное приложение, которое поможет пользователям изучать новые языки в реальных условиях.
Чтобы завершить это учебное пособие, вам потребуется:
- Установленный Flutter на вашем локальном компьютере. Если вы еще не настроили его, следуйте руководству по установке Flutter.
- Базовое понимание RESTful API и асинхронного программирования в Dart.
Сначала создайте новый проект Flutter, в котором вы будете разрабатывать приложение для погружения в язык с дополненной реальностью.
Откройте терминал и выполните следующую команду:
Эта команда создает новый проект Flutter с именем ar_language_immersion_app.
Перейдите в каталог проекта и откройте его в вашей предпочтительной IDE (например, Visual Studio Code, Android Studio):
Настройте ваш бэкенд на Back4App для обработки данных пользователей, переводов, культурной информации и отслеживания прогресса пользователей.
- Войдите в свою учетную запись Back4App.
- Нажмите на "Создать новое приложение".
- Введите "Приложение для погружения в язык" в качестве имени приложения.
- Нажмите "Создать".
Определите классы в соответствии с моделью данных:
- Пользователь
- РаспознаваемыйОбъект
- Перевод
- КультурнаяИнформация
- ПрогрессПользователя
2.2.1. Создание класса Пользователь
Класс Пользователь является классом по умолчанию в Back4App для обработки аутентификации пользователей.
- Перейдите в Core > Browser в вашей панели управления Back4App.
- Вы увидите класс _User уже доступен.
2.2.2. Создайте класс RecognizableObject
- Нажмите на "Создать класс".
- Выберите "Пользовательский" и назовите его "RecognizableObject".
- Нажмите "Создать класс".
Добавьте следующие столбцы:
- Имя (Строка)
- Категория (Строка)
- ImageReference (Файл)
2.2.3. Создайте класс Translation
- Создайте другой класс с именем "Translation".
- Добавьте следующие столбцы:
- objectId (Строка) [По умолчанию]
- ObjectID (Указатель на RecognizableObject)
- LanguageCode (Строка)
- TranslatedText (Строка)
- PronunciationGuide (Строка)
- AudioFileReference (Файл)
2.2.4. Создайте класс CulturalInfo
- Создайте класс с именем "CulturalInfo".
- Добавьте следующие столбцы:
- ObjectID (Указатель на RecognizableObject)
- LanguageCode (Строка)
- ShortDescription (Строка)
- DetailedInformation (Строка)
- RelatedMediaReferences (Массив файлов)
2.2.5. Создайте класс UserProgress
- Создайте класс с именем "UserProgress".
- Добавьте следующие столбцы:
- UserID (Указатель на пользователя)
- RecognizedObjects (Массив идентификаторов распознаваемых объектов)
- TranslationsViewed (Массив идентификаторов переводов)
- CulturalInfoAccessed (Массив идентификаторов культурной информации)
- LearningStreaks (Число)
- ProficiencyScores (Словарь)
- Перейдите в Настройки приложения > Безопасность и ключи.
- Запишите ваш Идентификатор приложения и Ключ клиента; они понадобятся вам для инициализации Parse в вашем приложении Flutter.
Интегрируйте SDK Parse, предоставленный Back4App, в ваш проект Flutter для связи с сервером.
Откройте pubspec.yaml и добавьте следующие зависимости:
Запустите команду:
Примечание: Поскольку нет официального AR плагина под названием augmented_reality_plugin, вам, возможно, придется использовать такие плагины, как arcore_flutter_plugin для Android и arkit_plugin для iOS. Настройте в соответствии с вашими целевыми платформами.
В lib/main.dart, инициализируйте Parse во время запуска приложения:
Замените 'YOUR_APPLICATION_ID' и 'YOUR_CLIENT_KEY' на ключи, которые вы получили от Back4App.
Реализуйте функции регистрации и входа пользователя.
Создайте новый файл lib/screens/auth_screen.dart.
В lib/main.dart, обновите ваш MaterialApp для включения маршрутов:
Настройте функциональность AR для распознавания объектов с помощью камеры устройства.
Для Android и iOS вам необходимо запросить разрешения на использование камеры.
Android
В android/app/src/main/AndroidManifest.xml, добавьте:
iOS
В ios/Runner/Info.plist, добавьте:
Создайте новый файл lib/screens/ar_view_screen.dart.
Примечание: Реализация полной распознавания объектов AR является сложной задачей и может потребовать интеграции с моделями машинного обучения, такими как TensorFlow Lite, или использования платформ, таких как ML Kit от Google. В этом учебном пособии мы будем имитировать распознавание объектов.
Для демонстрационных целей мы будем имитировать распознавание объектов, отображая заранее определенные объекты.
Обновите ar_view_screen.dart:
Получите переводы из Back4App и отображайте их в виде наложений.
В ar_view_screen.dart, добавьте метод для получения переводов:
Измените метод build:
Получите и отобразите культурную информацию, связанную с распознанным объектом.
Добавьте метод в ar_view_screen.dart:
Измените метод build:
Обновляйте прогресс пользователя каждый раз, когда он просматривает перевод или культурную информацию.
Добавьте метод для обновления прогресса:
В setState где selectedObject обновляется:
Убедитесь, что приложение может работать без подключения к интернету для основных функций.
Используйте локальную базу данных, такую как sqflite или hive для хранения переводов и культурной информации.
Добавьте hive зависимость в pubspec.yaml:
Инициализируйте Hive в main.dart:
Обновите getTranslation метод:
Повторите аналогичные шаги для getCulturalInfo.
Тщательно протестируйте приложение и подготовьте его к развертыванию.
Поскольку функции AR требуют доступа к камере, протестируйте приложение на реальных устройствах.
- Используйте эффективные структуры данных.
- Минимизируйте ненужные перерисовки в пользовательском интерфейсе.
- Оптимизируйте изображения и медиа-ресурсы.
- Обновите значки приложений и экраны загрузки.
- Настройте разрешения приложений.
- Создайте версии для выпуска для Android и iOS.
Смотрите официальную документацию Flutter по созданию и выпуску для получения дополнительной информации.
Поздравляем! Вы создали приложение для погружения в язык дополненной реальности с использованием Flutter и Back4App. Приложение распознает объекты, отображает переводы и культурную информацию, отслеживает прогресс пользователя и работает в оффлайн-режиме. Вы можете дополнительно улучшить приложение, интегрировав реальное распознавание объектов дополненной реальности, добавив больше языков и улучшив интерфейс/опыт пользователя.
Для получения дополнительной информации о расширенных функциях рассмотрите возможность изучения:
- Интеграция моделей машинного обучения: Используйте TensorFlow Lite для распознавания объектов на устройстве.
- Улучшение возможностей AR: Используйте плагины, такие как arcore_flutter_plugin или arkit_plugin для более насыщенного опыта AR.
- Реализация синтеза речи: Добавьте синтез речи для руководств по произношению, используя пакеты, такие как flutter_tts.
- Улучшение аутентификации пользователей: Реализуйте социальные входы или двухфакторную аутентификацию.
Создавая это приложение, вы приобрели опыт в разработке на Flutter, интеграции с Back4App и основных функциях, таких как кэширование данных в оффлайн-режиме и отслеживание прогресса пользователей. Продолжайте исследовать и улучшать ваше приложение, чтобы создать еще более увлекательный опыт изучения языка.