# Апрель '26. iOS и Flutter SDK: рекомендательные виджеты, tooltip-кампании и in-app поведение

## iOS SDK — selector-based flow для рекомендательных виджетов

В iOS SDK `0.0.9` зафиксирован публичный сценарий для рекомендательных виджетов через `getContentBySelector(...)`. Теперь клиентское приложение может получать контент recommendation widget по `selector`, разбирать ответ SDK и строить нативный UI у себя в приложении, сохраняя backend-driven логику Gravity Field.

Для этого же flow в SDK доступны публичные inline-компоненты `GravityInlineView` и `GravityInlineSwiftUIView`, которые позволяют встроить selector-based recommendation widget в UIKit- или SwiftUI-экран.

**💡 Зачем это нужно:**
Это делает iOS-интеграцию пригодной для production use case с рекомендательными виджетами. Клиент получает содержимое виджета с backend через `getContentBySelector(...)`, а отображение, placement и UX контролирует на своей стороне.

## iOS SDK — документация по установке, логированию и обработке ошибок

Вместе с релизом обновлена и документация по iOS SDK: в ней теперь собран базовый интеграционный flow, установка через Swift Package Manager, инициализация SDK, настройка `logLevel`, работа с `gravityEventCallback`, а также рекомендации по обработке ошибок и диагностике selector-based сценариев.

**💡 Зачем это нужно:**
Это снижает стоимость внедрения SDK в проект. Команде интеграции проще пройти путь от подключения пакета до запуска рекомендательного виджета, а при проблемах с контентом или показом кампаний быстрее понять, где именно искать причину.

[!ref](/Integration/SDK/sdk_ios.md)

## Flutter SDK — tooltip-кампании через `GravityAnchor`

Во Flutter SDK появился новый формат in-app кампаний — `tooltip`. Теперь сообщение можно привязать не ко всему экрану, а к конкретному элементу интерфейса: кнопке, баннеру или любому другому виджету. Для этого в SDK добавлен `GravityAnchor`, который регистрирует целевой элемент и позволяет показывать tooltip рядом с ним.

[!ref](/Integration/SDK/ask_flutter.md#gravityanchor-и-tooltip-кампании)

**💡 Зачем это нужно:**
Это открывает сценарии onboarding, контекстных подсказок и более точечных коммуникаций внутри приложения. Вместо того чтобы перекрывать экран modal-окном или full screen сообщением, можно аккуратно подсветить нужную точку интерфейса и объяснить следующий шаг пользователю.

## Flutter SDK — стабильность `SnackBar` и `closeOnClick`

Также в релиз вошли исправления для in-app поведения:

- `SnackBar` теперь стабильнее отображается поверх экранов и корректнее работает с app bar и вложенными scaffold;
- `closeOnClick` консистентно обрабатывается для `BottomSheetContent`, `FullScreenContent`, `ModalContent` и `SnackBar`.

**💡 Зачем это нужно:**
Это снижает количество визуальных и поведенческих расхождений в in-app сценариях. Сообщения отображаются предсказуемее, а CTA-кнопки и другие интерактивные элементы корректно закрывают текущий контейнер после действия пользователя.
