# iOS (Xcode/Swift) ## Признаки платформы - `*.xcodeproj`, `*.xcworkspace` - `Package.swift` (SPM) - `Podfile`, `Podfile.lock` (CocoaPods) - `Cartfile` (Carthage) - `*.pbxproj` - `Info.plist` ## Признаки многомодульного проекта - Несколько целей сборки в `*.xcodeproj` - Несколько `Package.swift` файлов - Рабочая область с несколькими проектами - `Modules/`, `Packages/`, `Features/` каталоги ## Источники перед созданием навыка - `*.xcodeproj/project.pbxproj` (список целей сборки) - `Package.swift` (зависимости и цели сборки) - `Podfile` (зависимости) - `*.xcconfig` (конфигурации сборки) - `Info.plist` файлов ## Что искать в кодовой базе ### Корневые каталоги исходников - `*/Sources/`, `*/Source/` - `*/App/`, `*/Core/`, `*/Features/` ### Типовые слои и каталоги: зафиксируй найденные `Models/`, `Views/`, `ViewModels/`, `Services/`, `Networking/`, `Utilities/`, `Extensions/`, `Coordinators/` ### Признаки шаблонов | Шаблон | Критерии обнаружения | Имя навыка | |---------|-------------------|------------| | SwiftUI View | `struct *: View`, `var body: some View` | swiftui-view | | UIKit VC | `UIViewController`, `viewDidLoad()` | uikit-viewcontroller | | ViewModel | `@Observable`, `ObservableObject`, `@Published` | viewmodel-observable | | Coordinator | `Coordinator`, `*Coordinator` | coordinator-pattern | | Repository | `*Repository`, `protocol *Repository` | data-repository | | Service | `*Service`, `protocol *Service` | service-layer | | Core Data | `NSManagedObject`, `@NSManaged`, `.xcdatamodeld` | coredata-entity | | Realm | `Object`, `@Persisted` | realm-model | | Network | `URLSession`, `Alamofire`, `Moya` | network-client | | Dependency | `@Inject`, `Container`, `Swinject` | di-container | | Navigation | `NavigationStack`, `NavigationPath` | navigation-swiftui | | Combine | `Publisher`, `AnyPublisher`, `sink` | combine-publisher | | Async/Await | `async`, `await`, `Task {` | async-await | | Unit Test | `XCTestCase`, `func test*()` | xctest | | UI Test | `XCUIApplication`, `XCUIElement` | xcuitest | ## Обязательные разделы результата Добавь, если найдено: - **Состав целей сборки**: список из pbxproj - **Модули/пакеты**: пакеты SPM и Pods - **Архитектура представлений**: SwiftUI или UIKit - **Управление состоянием**: Combine, Observable, и др. - **Сетевой слой**: URLSession, Alamofire, и др. - **Хранение данных**: Core Data, Realm, UserDefaults - **Настройка внедрения зависимостей**: Swinject, ручное внедрение ## Откуда брать команды - README и документация с командами xcodebuild - `fastlane/Fastfile` сценарии - Сценарии CI (`.github/workflows/`, `.gitlab-ci.yml`) - Обычные команды: `xcodebuild test`, `fastlane test` - Добавляй только команды, которые есть в репозитории ## Основные пути - `*/Sources/`, `*/Tests/` - `*.xcodeproj/`, `*.xcworkspace/` - `Pods/` (при использовании CocoaPods) - `Packages/` (при использовании локальных пакетов SPM)