Как создать виджеты на главном экране в Flutter с помощью HomeWidget и Back4App
Виджеты на главном экране позволяют пользователям получать информацию в реальном времени из вашего приложения прямо на главном экране их устройства без открытия приложения. С помощью 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.
- Parse Server SDK для Flutter добавлен в ваш проект. Вы можете узнать, как его настроить, следуя за Руководством по Flutter SDK от Back4App.
- Настройка, специфичная для платформы для виджетов на главном экране Android и iOS.
Откройте терминал и выполните:
Перейдите в каталог проекта:
Откройте pubspec.yaml и добавьте следующие зависимости:
Запустите flutter pub get для установки пакетов.
- Нажмите на "Создать новое приложение".
- Введите имя для вашего приложения, например, "HomeWidgetApp", и нажмите "Создать".
- В вашей панели управления приложением перейдите в раздел "База данных".
- Нажмите на "Создать класс".
- В модальном окне:
- Выберите "Пользовательский".
- Введите "Сообщение" в качестве имени класса.
- Нажмите "Создать класс".
- В классе "Сообщение" нажмите на "+" для добавления нового столбца.
- Добавьте следующие столбцы:
- название: Тип Строка
- содержимое: Тип Строка
- Добавьте несколько образцов данных в класс "Сообщение". Например:
- Перейдите в Настройки приложения > Безопасность и ключи.
- Запишите ваш Идентификатор приложения и Ключ клиента.
Откройте lib/main.dart и измените его следующим образом:
- Замените 'YOUR_APPLICATION_ID' и 'YOUR_CLIENT_KEY' на ваши реальные учетные данные Back4App.
Создайте новый файл lib/home_page.dart:
- Класс сообщения: Простая модель класса для хранения данных сообщения.
- fetchMessage(): Извлекает данные из класса Message в Back4App и обновляет переменную message.
- updateHomeWidget(): Сохраняет извлеченные данные в виджет домашнего экрана с помощью HomeWidget.saveWidgetData, и инициирует обновление с помощью HomeWidget.updateWidget.
- build(): Отображает данные сообщения и кнопку для обновления сообщения.
Создайте новый XML файл макета в android/app/src/main/res/layout/ с именем home_widget.xml:
Создайте новый класс Java в android/app/src/main/java/your/package/name/ с именем HomeWidgetProvider.java:
Замените your.package.name на ваше фактическое имя пакета.
Добавьте провайдер виджетов в ваш AndroidManifest.xml:
Создайте новый XML файл в android/app/src/main/res/xml/ с именем home_widget_info.xml:
- Откройте ваш проект Flutter в Xcode, открыв ios/Runner.xcworkspace.
- Нажмите File > New > Target.
- Выберите Widget Extension и нажмите Next.
- Введите HomeWidget в качестве имени продукта и убедитесь, что Include Configuration Intent не отмечено.
- Нажмите Finish и Activate схему.
В расширении HomeWidget откройте HomeWidget.swift и измените его:
- Замените YOUR_GROUP_ID на идентификатор вашей группы приложений (например, group.com.example.homeWidgetApp).
- В Xcode выберите ваш проект и перейдите в Signing & Capabilities.
- Добавьте "App Groups" как для основной цели приложения, так и для расширения виджета.
- Создайте новую группу приложений (например, group.com.example.homeWidgetApp).
- Убедитесь, что обе цели имеют включенную одну и ту же группу приложений.
В вашем updateHomeWidget() методе в home_page.dart, обновите имена виджетов:
В вашем терминале выполните:
- Долгим нажатием на главном экране выберите "Виджеты".
- Найдите ваше приложение в списке виджетов.
- Перетащите виджет на главный экран.
- Введите режим дрожания, долго нажав на главном экране.
- Нажмите на "+" кнопку в верхнем левом углу.
- Найдите ваш виджет по имени.
- Добавьте виджет на главный экран.
- Нажмите на "Обновить сообщение" кнопку в вашем приложении, чтобы получить новые данные из Back4App.
- Виджет на вашем домашнем экране должен обновиться с новыми данными.
В этом учебном пособии вы узнали, как создать виджет на домашнем экране в Flutter, используя пакет home_widget и интегрировать его с Back4App для отображения динамических данных. Это позволяет предоставлять пользователям актуальную информацию прямо на их домашних экранах, что повышает вовлеченность и пользовательский опыт.
- Динамические данные: Реализуйте обновления данных в реальном времени с помощью Live Queries от Back4App.
- Интерактивность: Добавьте действия по клику к вашему виджету, чтобы открывать определенные страницы в вашем приложении.
- Настройка: Настройте ваш виджет, чтобы он соответствовал теме и дизайну вашего приложения.
Счастливого кодирования!