React Native View Shot 6.2 исправляет изменение размеров снимков на iOS

React Native View Shot 6.2 исправляет изменение размеров снимков на iOS
Содержание статьи

24 октября опубликованы react-native-view-shot 6.2.0 и следующий патч 6.2.1. Библиотека сохраняет изображение компонента React Native. Первый выпуск исправляет масштабирование в одном из режимов захвата на iOS, второй уменьшает состав npm-пакета. На Mentoring.digital объясняем, какие приложения затрагивает изменение.

Когда снимок обрезался вместо уменьшения

Исправление относится к iOS и сочетанию useRenderInContext: true с заданными width и height. Раньше слой рисовался в собственном размере: при меньших выходных размерах оставалась его верхняя левая часть, а при больших появлялись прозрачные поля.

Теперь изображение масштабируется до запрошенного размера. Исправление действует и при snapshotContentContainer. Захват без указания width и height не изменился. Разработчики выпустили именно минорную версию, поскольку результат для затронутой комбинации параметров стал другим.

Что добавил патч 6.2.1

В тот же день из публикуемого npm-пакета убрали пример Expo, служебные настройки и тесты. По данным разработчиков, архив уменьшился с 2,27 МБ и 119 файлов до 55 КБ и 44 файлов. Изменений кода в этом патче нет.

Размер архива зависимости нельзя приравнивать к уменьшению готового приложения на ту же величину. Итоговый размер сборки нужно измерять отдельно: состав npm-пакета и состав устанавливаемого приложения различаются.

Как проверить захват после обновления

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

  • Снимите один компонент с размерами меньше и больше исходных, затем сравните полноту содержимого.
  • Проверьте включённый useRenderInContext и обычный режим отдельно.
  • Если используется прокручиваемый контейнер, убедитесь, что в снимок попадает нужная область.
  • Проверьте итоговую картинку в том сценарии, ради которого она создаётся: после сохранения или передачи дальше.

Разобрать параметры захвата, нативные различия платформ и проверку результата можно с ментором по React Native. Особенно полезно принести небольшой пример, на котором видно ожидаемый и фактический размер изображения.

Похожие статьи по данной теме