Добавить полноценный Widget Extension и исправить отображение циферблата в виджете.

Вынесена реализация виджета в отдельный target с корректным embedding и Info.plist, чтобы сборка и запуск работали стабильно на устройстве, а также улучшена адаптивная верстка меток и фонового контейнера для соответствия требованиям WidgetKit.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-17 18:59:07 +03:00
parent a3bf27169b
commit 0697440437
8 changed files with 501 additions and 26 deletions

33
README.md Normal file
View File

@@ -0,0 +1,33 @@
# 360Clock
iOS-приложение на SwiftUI с 24-часовым циферблатом (360°) и Home Screen виджетом на WidgetKit.
## Что умеет
- Основной экран с 24-часовой логикой углов.
- Виджет `systemSmall` и `systemMedium`.
- Три стрелки: часовая, минутная, секундная.
- Адаптивная разметка меток в виджете (без слипания на маленьком размере).
## Структура проекта
- `360Clock/ClockApp.swift` — точка входа приложения.
- `360Clock/ClockView.swift` — UI и расчеты для основного экрана.
- `360Clock/Info.plist``Info.plist` основного приложения.
- `ClockWidgetExtension/ClockWidgetBundle.swift` — виджет, timeline provider и UI виджета.
- `ClockWidgetExtension/Info.plist``Info.plist` extension-таргета.
- `360Clock.xcodeproj/project.pbxproj` — настройки таргетов app + widget extension.
## Важно про обновление виджета
WidgetKit не гарантирует секундные обновления на Home Screen. В текущей реализации timeline запрашивается с шагом в 1 минуту, что соответствует системным ограничениям и budget-политике iOS.
## Сборка
Открой `360Clock.xcodeproj` в Xcode, выбери схему `360Clock` и запускай на симуляторе или устройстве.
Для проверки через CLI (без подписи):
```bash
xcodebuild -scheme 360Clock -configuration Debug -destination 'generic/platform=iOS' -derivedDataPath './DerivedData' CODE_SIGNING_ALLOWED=NO CODE_SIGNING_REQUIRED=NO build
```