AgentSkillsCN

ios-developer-competency-matrix

全面掌握iOS开发专业能力,涵盖Swift语言精通、SwiftUI + UIKit界面开发、架构与设计模式(MVVM、Coordinator、Clean架构)、网络与数据存储、平台特性(生命周期、后台任务、设备功能)、无障碍访问、测试与调试、性能优化,以及CI/CD与App Store发布流程。适用于实施或评审iOS代码时,重点关注最佳实践模式、并发与线程安全、内存管理与ARC问题、架构决策、数据分层、测试策略,或确保应用达到上线准备标准。

SKILL.md
--- frontmatter
name: ios-developer-competency-matrix
description: Professional iOS development competency coverage across Swift language mastery, SwiftUI + UIKit UI development, architecture/patterns (MVVM, Coordinator, Clean), networking/data/persistence, platform capabilities (lifecycle, background, device features), accessibility, testing/debugging/performance, and CI/CD + App Store distribution. Use when implementing or reviewing iOS code for best-practice patterns, concurrency/thread-safety, memory/ARC issues, architecture decisions, data layers, testing strategy, or release readiness.

iOS Developer Competency Matrix

Use this skill as a review + implementation checklist when building features in this repo.

1) Quick triage questions (pick the right lane)

Answer these before coding:

  • Is this mostly UI (SwiftUI/UIKit), domain logic, data/network, or platform integration?
  • Do we need async work? If yes: can we use structured concurrency end-to-end?
  • What are the states (loading/empty/error/success) and how are they represented?
  • What must be testable (unit/UI/snapshot) and what is the acceptance criteria?

2) Swift language & concurrency rules

  • Prefer Swift concurrency (async/await) over nested completion handlers.
  • UI mutations on the main actor (@MainActor / await MainActor.run).
  • Use actors or isolated types for shared mutable state.
  • Watch for ARC traps: closures capturing self → use [weak self] when needed.

3) UI (SwiftUI + UIKit)

  • SwiftUI: choose the right state tool (@State, @Binding, @StateObject, @ObservedObject, @Environment).
  • UIKit: respect lifecycle, safe areas, and Auto Layout anchors.
  • Interop:
    • SwiftUI in UIKit: UIHostingController
    • UIKit in SwiftUI: UIViewRepresentable / UIViewControllerRepresentable

4) Architecture & patterns

Default opinionated picks (override only with reason):

  • SwiftUI screens: MVVM (View + ViewModel + injected services)
  • Navigation complexity: add a Coordinator (or a routing layer)
  • Scale/enterprise modules: consider Clean boundaries (domain/use-cases, repositories)
  • Dependency injection: start with initializer injection; add a container only when it pays off.

5) Networking & data

  • Prefer URLSession + Codable with explicit domain errors.
  • Model API errors → map to user-facing messages at the edge.
  • Persistence: SwiftData/Core Data for relational graphs; Keychain for secrets; UserDefaults for prefs.

6) Platform integration

  • Understand scene lifecycle vs app delegate responsibilities.
  • For background work, pick the correct API (and keep expectations realistic).
  • Device features (camera/location/push/biometrics): treat permission flows + failure paths as first-class.

7) Quality: tests, debugging, performance

  • Unit tests for logic; UI tests for key flows; snapshot tests for UI regressions (if used here).
  • Use Instruments for leaks/time/energy when performance matters.

8) Release readiness

  • HIG alignment + accessibility basics.
  • Review Guideline landmines: privacy disclosures, permissions strings, incomplete flows.
  • CI/CD: prefer SPM; automate build/test; keep signing/provisioning sane.

References

  • Deep checklists + snippets: references/checklists.md