TGViewer
Мобильный трудоголик Мобильный трудоголик @hardworkerit · 1.65K subscribers
Post #452 1.05K
🔢 iOS 27: что изменилось в Siri SDK.

Привет! С новым Siri на базе ИИ компания Apple обещает, что можно будет просто сказать «Найди ту футболку, которую я хотел купить пару месяцев назад» и Siri найдет ответ. Но как это работает для сторонних приложений? В iOS 27 обновился Siri SDK. Теперь приложения могут лучше интегрироваться с голосовым ассистентом. Разберем ключевые улучшения.


AppEntity и IndexedEntity:

Для того чтобы ваши данные могли участвовать в запросах к Siri, нужно создать легкую версию модели - AppEntity. Это не сама модель, а ее описание для системы.


struct TeamEntity: AppEntity {
static var defaultQuery = TeamEntityQuery()

let id: String
@Property(title: "Team Name") var name: String
@Property(title: "Roster Size") var rosterSize: Int
}


Если ваши данные можно индексировать, достаточно добавить IndexedEntity. Система автоматически проиндексирует контент и Siri сможет его искать.


extension TeamEntity: IndexedEntity {}


С помощью @Property(indexingKey:) можно указать, какие именно поля должны участвовать в поиске.


App Schemas:

Apple подготовила готовые схемы для популярных типов данных: сообщения, контакты, задачи. Если ваше приложение попадает в одну из этих категорий, нужно просто указать схему через @AppEntity.


@AppEntity(schema: .messages.message)
struct MessageEntity: IndexedEntity {
@Property(indexingKey: \.textContent) var body: AttributedString?
}


Xcode подсказывает доступные поля. Apple уже настроила Siri на понимание этих схем - контекст, уточняющие вопросы и связки между действиями работают почти без дополнительного кода.


On-screen Awareness:

Чтобы Siri могла отвечать на вопросы о том, что сейчас на экране, есть два подхода. NSUserActivity для одного элемента (например, фотографии). View annotations для списков (например нескольких сообщений или контактов).


.userActivity("com.example.entity", element: entity.asEntity()) { entity, activity in
activity.title = entity.title
}


Или с помощью модификатора .appEntityIdentifier.


.appEntityIdentifier(EntityIdentifier(for: Entity.self, identifier: p.id))



Передача данных через Transferable:

Для обмена данными между приложениями через Siri (например «Отправь это письмо» или «Создай событие») используется Transferable.


extension TeamEntity: Transferable {
static var transferRepresentation: some TransferRepresentation {
IntentValueRepresentation(
exporting: { entity in
IntentPerson(name: .displayName(entity.name))
},
importing: { person in
ContactEntity(name: person.name.displayString)
}
)
}
}



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


💡 Вывод:

Новый Siri SDK делает интеграцию с голосовым ассистентом более структурированной. AppEntity, IndexedEntity и готовые схемы закрывают большинство сценариев. On-screen Awareness позволяет приложениям делиться контекстом с Siri. Transferable дает возможность передавать данные между приложениями.

Но есть белое пятно: что делать, если приложение не попадает в готовые схемы Apple? Как использовать весь потенциал нового Siri в этом случае? Ответа пока нет.

Тем не менее, для большинства приложений подход понятный и достаточно простой. Начать стоит с конформности IndexedEntity - это самый быстрый способ сделать данные доступными для Siri без глубокой перестройки архитектуры.


Подписаться на канал:
➡️ Telegram | Max
  • 👍 9
  • 🔥 3
  • ❤ 1
  • 🙏 1
More from @hardworkerit
  1. Sep 29, 2026🔢 Управление тулбарами на iPhone Duo. На iPhone Duo элементы управления навигацией, дейст…
  2. Sep 27, 2026🔢 Новые возможности Hashable в Swift 6.4 В Swift 6.4 добавили Hashable для нескольких тип…
  3. Sep 25, 2026🔢 Приватные свойства больше не ломают memberwise инициализатор в Swift 6.4 Swift автомати…
  4. Sep 24, 2026👨‍💻 Почему разработчики ненавидят своих менеджеров. Всем привет! Сегодня хочу разобрать…
  5. Sep 22, 2026🔢 Релиз Swift 6.4: главные изменения для разработчиков. Swift 6.4 вышел. Это обновление п…
  6. Sep 20, 2026📱 Официальный симулятор iPhone Duo уже доступен в Xcode 27.1 В бета-версии Xcode 27.1 поя…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →