swiftui-expert-skill
Создавайте современные приложения SwiftUI с экспертными лучшими практиками
متاح أيضًا من: avdlee
Разработчики SwiftUI сталкиваются со сложностями управления состоянием и устаревшими шаблонами API. Этот навык предоставляет обоснованные рекомендации для современной разработки на SwiftUI с использованием @Observable, правильной композиции представлений и стилизации Liquid Glass для iOS 26+.
تنزيل ZIP المهارة
رفع في Claude
اذهب إلى Settings → Capabilities → Skills → Upload skill
فعّل وابدأ الاستخدام
اختبرها
استخدام "swiftui-expert-skill". Проверьте это представление: struct ProductView: View { @StateObject var vm: ProductViewModel; var body: some View { Text(vm.title) } }
النتيجة المتوقعة:
Найдены проблемы: (1) Использование @StateObject с ObservableObject — предпочтите @Observable класс с @State для нового кода. (2) StateObject должен быть private. (3) Рассмотрите передачу title как let-параметра, если значение только для чтения. Рекомендуется: Используйте @Observable класс, пометьте @State как private, передавайте значения только для чтения напрямую.
استخدام "swiftui-expert-skill". Как обрабатывать навигацию к детальному представлению при тапе по строке списка?
النتيجة المتوقعة:
Используйте NavigationStack с navigationDestination для типобезопасной навигации. Замените NavigationView на NavigationStack на корневом уровне. Используйте NavigationLink с параметром value и модификатором navigationDestination(for:). Это обеспечивает безопасность на этапе компиляции и правильное управление состоянием по сравнению со старыми паттернами NavigationView.
التدقيق الأمني
آمنStatic analyzer produced 226 false positive findings due to pattern matching on markdown documentation content. External command patterns matched file path references like 'references/state-management.md' and Swift code examples, not actual shell execution. Network finding was a GitHub source URL in YAML frontmatter. All blocker findings for cryptographic algorithms and system reconnaissance are incorrect pattern matches on documentation text. No executable code or security risks present.
درجة الجودة
ماذا يمكنك بناءه
iOS-разработчик, создающий новые функции
Используйте при создании новых SwiftUI-представлений для обеспечения правильного управления состоянием с @Observable, использования современных API, таких как foregroundStyle() и NavigationStack, и оптимальной структуры представлений с самого начала.
Проверка кода существующих проектов на SwiftUI
Используйте при аудите легаси-кода SwiftUI для выявления устаревших API, некорректных декораторов свойств, антипаттернов производительности и возможностей для модернизации.
Изучение современных паттернов SwiftUI
Используйте при переходе с UIKit или старых версий SwiftUI для изучения текущих лучших практик передачи данных, композиции представлений и руководств по дизайну Apple.
جرّب هذه الموجهات
Проверьте это SwiftUI-представление на правильность управления состоянием и использования современных API. Проверьте выбор декоратора свойств, устаревшие API и паттерны композиции представлений.
Рефакторьте этот SwiftUI-код для использования современных API. Замените ObservableObject на @Observable, обновите устаревшие модификаторы и оптимизируйте структуру представлений для производительности.
Помогите мне создать новую функцию SwiftUI с правильным потоком данных. Спроектируйте управление состоянием с использованием @Observable, структурируйте представления для оптимального diffing и примените стилизацию iOS 26+ там, где это уместно.
Проанализируйте это SwiftUI-представление на проблемы производительности. Выявите ненужные обновления состояния, проблемы идентичности представлений в ForEach, оптимизации горячих путей и причины layout thrashing.
أفضل الممارسات
- Предпочитайте @Observable вместо ObservableObject для нового SwiftUI-кода с @MainActor для потокобезопасности
- Держите тело view простым и чистым — извлекайте сложную логику в модели и подпредставления
- Используйте стабильную идентичность в ForEach с уникальными идентификаторами, никогда не используйте .indices для динамического контента
تجنب
- Объявление передаваемых значений как @State или @StateObject вместо использования @Binding или let-параметров
- Использование GeometryReader, когда существуют альтернативы containerRelativeFrame или visualEffect
- Создание объектов или выполнение тяжёлых вычислений напрямую в теле представления
الأسئلة المتكررة
Следует ли использовать @Observable или ObservableObject для новых SwiftUI-проектов?
Когда следует использовать @Binding вместо прямой передачи значения?
Требуется ли стилизация Liquid Glass для iOS-приложений?
Почему мой ForEach вызывает сбои с динамическими массивами?
Как отладить неожиданные перерисовки представлений в SwiftUI?
Может ли этот навык навязывать конкретную архитектуру, такую как MVVM?
تفاصيل المطور
المؤلف
sickn33الترخيص
MIT
المستودع
https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/swiftui-expert-skillمرجع
main
بنية الملفات
📄 SKILL.md