WidgetKit — это фреймворк Apple для создания виджетов на домашнем экране и экране блокировки iOS-приложений. Виджеты отображают SwiftUI views только для чтения, которые показывают актуальную информацию из твоего приложения без необходимости его открывать.
WidgetKit опирается на три основных компонента:
TimelineEntry — снимок данных, привязанный к конкретной дате и времениTimelineProvider — отвечает за генерацию последовательности записей, которые сообщают системе когда и что отображатьWidget view — SwiftUI view, отрисованный системой на основе текущей записи timelineTimelineProvider реализует три ключевых метода:
placeholder(in:) // показывается во время загрузки данных
getSnapshot(in:) // возвращает одну запись для превью
getTimeline(in:) // поставляет массив записей с политикой перезагрузки
Политика перезагрузки (.atEnd, .after(date:), .never) сообщает системе, когда запросить новый timeline, обеспечивая актуальность контента.
Виджеты поддерживают несколько размеров отображения:
systemSmall, systemMedium, systemLargeaccessoryCircular, accessoryRectangular (экран блокировки)Начиная с iOS 17+, виджеты поддерживают ограниченную интерактивность через AppIntent, позволяя пользователям нажимать кнопки или переключатели прямо в виджете без открытия приложения.
Виджеты — это не мини-приложения — это снимки только для чтения, полностью управляемые timeline. Они не могут реагировать на произвольный пользовательский ввод или запускать непрерывную фоновую логику.
Класс TimelineProvider отвечает за генерацию последовательности объектов TimelineEntry, которые определяют, когда и какой контент должен отображать виджет.
Новый — ещё не проверен сообществом
Вы