Flutter Templates

Как создать приложение для языкового погружения с дополненной реальностью на Flutter и Back4App

40min

Введение

В этом учебном пособии вы создадите приложение для погружения в язык с дополненной реальностью (AR) с использованием Flutter и Back4App. Приложение использует технологии AR для распознавания объектов через камеру устройства, наложения переводов, предоставления культурной информации и отслеживания прогресса пользователя. К концу этого учебного пособия у вас будет функциональное приложение, которое поможет пользователям изучать новые языки в реальных условиях.

Предварительные требования

Чтобы завершить это учебное пособие, вам потребуется:

Шаг 1 – Настройка проекта Flutter

Сначала создайте новый проект Flutter, в котором вы будете разрабатывать приложение для погружения в язык с дополненной реальностью.

1.1. Создание нового проекта Flutter

Откройте терминал и выполните следующую команду:

Bash


Эта команда создает новый проект Flutter с именем ar_language_immersion_app.

1.2. Откройте проект в вашей IDE

Перейдите в каталог проекта и откройте его в вашей предпочтительной IDE (например, Visual Studio Code, Android Studio):

Bash


Шаг 2 – Настройка бэкенда Back4App

Настройте ваш бэкенд на Back4App для обработки данных пользователей, переводов, культурной информации и отслеживания прогресса пользователей.

2.1. Создание нового приложения на Back4App

  1. Войдите в свою учетную запись Back4App.
  2. Нажмите на "Создать новое приложение".
  3. Введите "Приложение для погружения в язык" в качестве имени приложения.
  4. Нажмите "Создать".

2.2. Настройка модели данных

Определите классы в соответствии с моделью данных:

  • Пользователь
  • РаспознаваемыйОбъект
  • Перевод
  • КультурнаяИнформация
  • ПрогрессПользователя

2.2.1. Создание класса Пользователь

Класс Пользователь является классом по умолчанию в Back4App для обработки аутентификации пользователей.

  1. Перейдите в Core > Browser в вашей панели управления Back4App.
  2. Вы увидите класс _User уже доступен.

2.2.2. Создайте класс RecognizableObject

  1. Нажмите на "Создать класс".
  2. Выберите "Пользовательский" и назовите его "RecognizableObject".
  3. Нажмите "Создать класс".

Добавьте следующие столбцы:

  • Имя (Строка)
  • Категория (Строка)
  • ImageReference (Файл)

2.2.3. Создайте класс Translation

  1. Создайте другой класс с именем "Translation".
  2. Добавьте следующие столбцы:
  • objectId (Строка) [По умолчанию]
  • ObjectID (Указатель на RecognizableObject)
  • LanguageCode (Строка)
  • TranslatedText (Строка)
  • PronunciationGuide (Строка)
  • AudioFileReference (Файл)

2.2.4. Создайте класс CulturalInfo

  1. Создайте класс с именем "CulturalInfo".
  2. Добавьте следующие столбцы:
  • ObjectID (Указатель на RecognizableObject)
  • LanguageCode (Строка)
  • ShortDescription (Строка)
  • DetailedInformation (Строка)
  • RelatedMediaReferences (Массив файлов)

2.2.5. Создайте класс UserProgress

  1. Создайте класс с именем "UserProgress".
  2. Добавьте следующие столбцы:
  • UserID (Указатель на пользователя)
  • RecognizedObjects (Массив идентификаторов распознаваемых объектов)
  • TranslationsViewed (Массив идентификаторов переводов)
  • CulturalInfoAccessed (Массив идентификаторов культурной информации)
  • LearningStreaks (Число)
  • ProficiencyScores (Словарь)

2.3. Получить ключи приложения

  1. Перейдите в Настройки приложения > Безопасность и ключи.
  2. Запишите ваш Идентификатор приложения и Ключ клиента; они понадобятся вам для инициализации Parse в вашем приложении Flutter.

Шаг 3 – Интеграция Parse SDK в Flutter

Интегрируйте SDK Parse, предоставленный Back4App, в ваш проект Flutter для связи с сервером.

3.1. Добавить зависимости

Откройте pubspec.yaml и добавьте следующие зависимости:

YAML


Запустите команду:

Bash


Примечание: Поскольку нет официального AR плагина под названием augmented_reality_plugin, вам, возможно, придется использовать такие плагины, как arcore_flutter_plugin для Android и arkit_plugin для iOS. Настройте в соответствии с вашими целевыми платформами.

3.2. Инициализируйте Parse в вашем приложении

В lib/main.dart, инициализируйте Parse во время запуска приложения:

Dart


Замените 'YOUR_APPLICATION_ID' и 'YOUR_CLIENT_KEY' на ключи, которые вы получили от Back4App.

Шаг 4 – Реализация аутентификации пользователей

Реализуйте функции регистрации и входа пользователя.

4.1. Создать экран аутентификации

Создайте новый файл lib/screens/auth_screen.dart.

Dart


4.2. Обновление main.dart для включения маршрутов

В lib/main.dart, обновите ваш MaterialApp для включения маршрутов:

Dart


Шаг 5 – Реализация распознавания AR объектов

Настройте функциональность AR для распознавания объектов с помощью камеры устройства.

5.1. Настройка разрешений

Для Android и iOS вам необходимо запросить разрешения на использование камеры.

Android

В android/app/src/main/AndroidManifest.xml, добавьте:

XML


iOS

В ios/Runner/Info.plist, добавьте:

XML


5.2. Реализуйте AR View

Создайте новый файл lib/screens/ar_view_screen.dart.

Dart


Примечание: Реализация полной распознавания объектов AR является сложной задачей и может потребовать интеграции с моделями машинного обучения, такими как TensorFlow Lite, или использования платформ, таких как ML Kit от Google. В этом учебном пособии мы будем имитировать распознавание объектов.

5.3. Имитировать распознавание объектов

Для демонстрационных целей мы будем имитировать распознавание объектов, отображая заранее определенные объекты.

Обновите ar_view_screen.dart:

Dart


Шаг 6 – Отображение наложений перевода

Получите переводы из Back4App и отображайте их в виде наложений.

6.1. Получение данных перевода

В ar_view_screen.dart, добавьте метод для получения переводов:

Dart


6.2. Обновите интерфейс для отображения перевода

Измените метод build:

Dart


Шаг 7 – Предоставление культурной информации

Получите и отобразите культурную информацию, связанную с распознанным объектом.

7.1. Получение культурной информации

Добавьте метод в ar_view_screen.dart:

Dart


7.2. Обновите интерфейс пользователя, чтобы показать культурную информацию

Измените метод build:

Dart


Шаг 8 – Отслеживание прогресса пользователя

Обновляйте прогресс пользователя каждый раз, когда он просматривает перевод или культурную информацию.

8.1. Обновите UserProgress в Back4App

Добавьте метод для обновления прогресса:

Dart


8.2. Вызовите updateUserProgress, когда объект распознан

В setState где selectedObject обновляется:

Dart


Шаг 9 – Реализация оффлайн-режима

Убедитесь, что приложение может работать без подключения к интернету для основных функций.

9.1. Кэширование данных локально

Используйте локальную базу данных, такую как sqflite или hive для хранения переводов и культурной информации.

Добавьте hive зависимость в pubspec.yaml:

YAML


Инициализируйте Hive в main.dart:

Dart


9.2. Измените методы получения данных для использования кэша

Обновите getTranslation метод:

Dart


Повторите аналогичные шаги для getCulturalInfo.

Шаг 10 – Тестирование и Развертывание

Тщательно протестируйте приложение и подготовьте его к развертыванию.

10.1. Тестирование на физических устройствах

Поскольку функции AR требуют доступа к камере, протестируйте приложение на реальных устройствах.

10.2. Оптимизация производительности

  • Используйте эффективные структуры данных.
  • Минимизируйте ненужные перерисовки в пользовательском интерфейсе.
  • Оптимизируйте изображения и медиа-ресурсы.

10.3. Подготовка к развертыванию

  • Обновите значки приложений и экраны загрузки.
  • Настройте разрешения приложений.
  • Создайте версии для выпуска для Android и iOS.

Смотрите официальную документацию Flutter по созданию и выпуску для получения дополнительной информации.

Заключение

Поздравляем! Вы создали приложение для погружения в язык дополненной реальности с использованием Flutter и Back4App. Приложение распознает объекты, отображает переводы и культурную информацию, отслеживает прогресс пользователя и работает в оффлайн-режиме. Вы можете дополнительно улучшить приложение, интегрировав реальное распознавание объектов дополненной реальности, добавив больше языков и улучшив интерфейс/опыт пользователя.

Для получения дополнительной информации о расширенных функциях рассмотрите возможность изучения:

  • Интеграция моделей машинного обучения: Используйте TensorFlow Lite для распознавания объектов на устройстве.
  • Улучшение возможностей AR: Используйте плагины, такие как arcore_flutter_plugin или arkit_plugin для более насыщенного опыта AR.
  • Реализация синтеза речи: Добавьте синтез речи для руководств по произношению, используя пакеты, такие как flutter_tts.
  • Улучшение аутентификации пользователей: Реализуйте социальные входы или двухфакторную аутентификацию.

Создавая это приложение, вы приобрели опыт в разработке на Flutter, интеграции с Back4App и основных функциях, таких как кэширование данных в оффлайн-режиме и отслеживание прогресса пользователей. Продолжайте исследовать и улучшать ваше приложение, чтобы создать еще более увлекательный опыт изучения языка.