Внедрение фоновых каналов изолятов
Hola, Amigos! Хорошие новости: начиная с Flutter 3.7, разработчики могут вызывать плагины и каналы платформы из любого изолята, а не из основного изолята Flutter.
Зачем это нужно?
Ответ прост — иногда нет другого выбора. Например, библиотека может запускать обратные вызовы на фоновом изоляте, как это делает android_alarm_manager_plus. Также приложение может проводить значительные вычислительные операции, а разработчик не хотел бы, чтобы они влияли на пользовательский интерфейс.
Пример использования Background Isolate Channels
Представьте приложение для создания изображений высокого разрешения на основе текстовых подсказок для ИИ. Прошлые проекты пользователя сохраняются в облачном хранилище Firebase, а также есть функция для экспорта и обмена этими проектами с мобильного телефона пользователя.
Приложение Flutter запускает фоновый изолят, который загружает изображение в разрешении 8k из Firebase Cloud Store, уменьшает его до желаемого размера экспорта, сохраняет изображение в галерею камеры и отправляет локальное уведомление, когда экспорт завершен.
В этом примере из фонового изолята использовалось как минимум три плагина:
– один для чтения из Firebase Cloud Store;
– один для сохранения в галерею камеры телефона;
– один для отправки локального уведомления.
Без фоновых каналов изолятов приложению пришлось бы перенести изображение в разрешении 8k из основного изолята в фоновый для уменьшения его размера. На данный момент не найден способ сделать эту операцию постоянной по времени в Dart.
В следующем посте рассмотрим пример использования нового API для вызова плагина shared_preferences из фонового изолята. А пока делитесь в комментариях, как часто вы пользуетесь фоновыми изолятами?
Post #128
1.53K
- 👍 22
- 🔥 2