TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Flutter & Dart | Мобильный трудоголик

14 Jul, 09:11

Открыть в Telegram Поделиться Пожаловаться

👣 Создаем виджеты для Android и iOS во Flutter-приложении

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


Что такое виджеты:

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

Виджеты бывают разных типов:

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

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

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

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


Нативные инструменты:

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

На Android виджеты можно создавать двумя способами: через XML или с помощью Jetpack Glance. Glance - более современное решение на основе Compose. Оно позволяет писать декларативный код, не заморачиваясь с XML-макетами и управлением состояниями. Glance поддерживает большинство компонентов Compose: текст, кнопки, контейнеры.

На iOS виджеты реализуются через WidgetKit, доступный с iOS 14. Они создаются на SwiftUI и хорошо интегрируются в экосистему Apple. WidgetKit работает с TimelineProvider, который отвечает за данные и расписание обновлений и Entry - моделью данных для виджета.


Библиотека home_widget:

Для связи Flutter-приложения с нативными виджетами используется библиотека home_widget. Она предоставляет удобные методы для сохранения данных и обновления виджетов.

Основные методы:

🔵saveWidgetData - сохраняет данные в хранилище виджета.

🔵updateWidget - обновляет виджет на экране.

🔵getWidgetData - читает данные из виджета обратно в Flutter.

Пример использования:


Future _sendAndUpdate(int? value) async {
await HomeWidget.saveWidgetData(_countKey, value);
await HomeWidget.updateWidget(
androidName: 'CounterGlanceWidgetReceiver',
iOSName: 'CounterWidget'
);
}


Сначала данные сохраняются через saveWidgetData, затем вызывается updateWidget с указанием имени виджета для каждой платформы.


🔗 Читать подробнее


💡 Вывод:

Виджеты - это полезный способ повысить вовлеченность пользователей. Во Flutter нет встроенной поддержки виджетов, но есть надежный путь через нативные инструменты. На Android - Glance (или классические XML-виджеты). На iOS - WidgetKit.

Библиотека home_widget связывает Flutter-код с нативной реализацией, позволяя сохранять данные и обновлять виджеты из Dart. Это не самый простой путь, но он рабочий и хорошо документированный.

Если вы хотите добавить виджеты в свое Flutter-приложение, начните с изучения Glance для Android и WidgetKit для iOS. А библиотека home_widget поможет соединить все воедино.


Подписаться на канал:
➡️ Flutter & Dart | Мобильный трудоголик

Закрытый канал:
🚀 Мобильный трудоголик PRO

612 1 9 7
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot