More

Как создать виджеты на главном экране в Flutter с помощью HomeWidget и Back4App

31min

Введение

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

В этом учебном пособии вы узнаете, как создать виджет на главном экране в Flutter, используя пакет home_widget и интегрировать его с Back4App — бэкендом как сервисом, работающим на Parse Server. К концу этого учебного пособия у вас будет приложение Flutter, которое отображает данные из Back4App в виджете на главном экране.

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

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

  • Flutter SDK установлен на вашем компьютере. Вы можете следовать за официальным руководством по установке Flutter для вашей операционной системы.
  • Базовые знания Flutter и Dart. Если вы новичок в Flutter, рассмотрите возможность изучения документации Flutter для ознакомления с основами.
  • IDE или текстовый редактор такой как Visual Studio Code или Android Studio.
  • Аккаунт Back4App. Зарегистрируйтесь для получения бесплатного аккаунта на Back4App.
  • Parse Server SDK для Flutter добавлен в ваш проект. Вы можете узнать, как его настроить, следуя за Руководством по Flutter SDK от Back4App.
  • Настройка, специфичная для платформы для виджетов на главном экране Android и iOS.

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

1.1. Создайте новый проект Flutter

Откройте терминал и выполните:

Bash


Перейдите в каталог проекта:

Bash


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

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

YAML


Запустите flutter pub get для установки пакетов.

Шаг 2 – Настройка Back4App

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

  1. Войдите в вашу панель управления Back4App.
  2. Нажмите на "Создать новое приложение".
  3. Введите имя для вашего приложения, например, "HomeWidgetApp", и нажмите "Создать".

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

  1. В вашей панели управления приложением перейдите в раздел "База данных".
  2. Нажмите на "Создать класс".
  3. В модальном окне:
    • Выберите "Пользовательский".
    • Введите "Сообщение" в качестве имени класса.
    • Нажмите "Создать класс".

2.3. Добавить столбцы в класс

  1. В классе "Сообщение" нажмите на "+" для добавления нового столбца.
  2. Добавьте следующие столбцы:
    • название: Тип Строка
    • содержимое: Тип Строка
  3. Добавьте несколько образцов данных в класс "Сообщение". Например:

2.4. Получить учетные данные приложения

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

Шаг 3 – Инициализация Parse в вашем приложении Flutter

Откройте lib/main.dart и измените его следующим образом:

Dart

  • Замените 'YOUR_APPLICATION_ID' и 'YOUR_CLIENT_KEY' на ваши реальные учетные данные Back4App.

Шаг 4 – Получение данных из Back4App

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

Dart


Объяснение

  • Класс сообщения: Простая модель класса для хранения данных сообщения.
  • fetchMessage(): Извлекает данные из класса Message в Back4App и обновляет переменную message.
  • updateHomeWidget(): Сохраняет извлеченные данные в виджет домашнего экрана с помощью HomeWidget.saveWidgetData, и инициирует обновление с помощью HomeWidget.updateWidget.
  • build(): Отображает данные сообщения и кнопку для обновления сообщения.

Шаг 5 – Настройка виджета домашнего экрана

5.1. Настройка Android

5.1.1. Создание макета виджета

Создайте новый XML файл макета в android/app/src/main/res/layout/ с именем home_widget.xml:

XML


5.1.2. Создание провайдера виджета

Создайте новый класс Java в android/app/src/main/java/your/package/name/ с именем HomeWidgetProvider.java:

Java


Замените your.package.name на ваше фактическое имя пакета.

5.1.3. Обновите Android Manifest

Добавьте провайдер виджетов в ваш AndroidManifest.xml:

XML


5.1.4. Создайте XML для информации о виджете

Создайте новый XML файл в android/app/src/main/res/xml/ с именем home_widget_info.xml:

XML


5.2. Настройка iOS

5.2.1. Создание расширения виджета

  1. Откройте ваш проект Flutter в Xcode, открыв ios/Runner.xcworkspace.
  2. Нажмите File > New > Target.
  3. Выберите Widget Extension и нажмите Next.
  4. Введите HomeWidget в качестве имени продукта и убедитесь, что Include Configuration Intent не отмечено.
  5. Нажмите Finish и Activate схему.

5.2.2. Обновите код виджета

В расширении HomeWidget откройте HomeWidget.swift и измените его:

Swift

  • Замените YOUR_GROUP_ID на идентификатор вашей группы приложений (например, group.com.example.homeWidgetApp).

5.2.3. Настройка групп приложений

  1. В Xcode выберите ваш проект и перейдите в Signing & Capabilities.
  2. Добавьте "App Groups" как для основной цели приложения, так и для расширения виджета.
  3. Создайте новую группу приложений (например, group.com.example.homeWidgetApp).
  4. Убедитесь, что обе цели имеют включенную одну и ту же группу приложений.

5.3. Обновите код Flutter для конфигураций, специфичных для платформы

В вашем updateHomeWidget() методе в home_page.dart, обновите имена виджетов:

Dart


Шаг 6 – Запуск приложения и тестирование виджета

6.1. Запустите приложение

В вашем терминале выполните:

Bash


6.2. Добавьте виджет на главный экран

Android

  1. Долгим нажатием на главном экране выберите "Виджеты".
  2. Найдите ваше приложение в списке виджетов.
  3. Перетащите виджет на главный экран.

iOS

  1. Введите режим дрожания, долго нажав на главном экране.
  2. Нажмите на "+" кнопку в верхнем левом углу.
  3. Найдите ваш виджет по имени.
  4. Добавьте виджет на главный экран.

6.3. Обновления тестовых данных

  • Нажмите на "Обновить сообщение" кнопку в вашем приложении, чтобы получить новые данные из Back4App.
  • Виджет на вашем домашнем экране должен обновиться с новыми данными.

Заключение

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

Следующие шаги

  • Динамические данные: Реализуйте обновления данных в реальном времени с помощью Live Queries от Back4App.
  • Интерактивность: Добавьте действия по клику к вашему виджету, чтобы открывать определенные страницы в вашем приложении.
  • Настройка: Настройте ваш виджет, чтобы он соответствовал теме и дизайну вашего приложения.

Дополнительные ресурсы

Счастливого кодирования!