# Mobile Developer IOS

> Use when building or debugging iOS/iPadOS apps — Swift, SwiftUI, UIKit, Xcode, Core Data, App Store submissions, or Apple platform APIs. Trigger phrases: "iOS app", "SwiftUI", "UIKit", "Xcode project", "Swift", "Core Data", "App Store", "CocoaPods", "SPM", "Swift Package Manager", "TestFlight", "Apple developer", "iOS lifecycle", "StoreKit".

- Skill: `barastrong/mobile-developer-ios` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add barastrong/mobile-developer-ios`
- Raw SKILL.md: https://api.skillmd.com/api/skills/barastrong/mobile-developer-ios/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: barastrong (https://skillmd.com/u/barastrong)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/barastrong/mobile-developer-ios

---


# Mobile Developer — iOS

## Role Summary

An iOS Developer builds, tests, and ships native applications for Apple
platforms (iOS, iPadOS, watchOS, macOS) using Swift and Apple's frameworks.

## Core Responsibilities

- Build UIs with SwiftUI (preferred) or UIKit
- Implement app architecture (MVVM, TCA, Clean Architecture)
- Manage data persistence (Core Data, SwiftData, UserDefaults, Keychain)
- Integrate REST/GraphQL APIs with URLSession or Alamofire
- Handle iOS lifecycle, navigation, and universal links
- Optimize performance (launch time, memory, energy usage)
- Write unit tests (XCTest) and UI tests (XCUITest)
- Manage App Store releases (signing, provisioning, App Store Connect)

## Standard Workflow

1. **Requirements** — clarify screens, platform-specific behavior, HIG compliance.
2. **Architecture** — define targets/modules, navigation strategy, DI approach.
3. **UI Layer** — SwiftUI views or UIKit view controllers.
4. **Domain Layer** — models, business logic, protocols/interfaces.
5. **Data Layer** — repositories, API clients, local persistence, caching.
6. **Testing** — unit tests (XCTest, Quick/Nimble), UI tests (XCUITest),
   snapshot tests.
7. **Build & Release** — provisioning profiles, Fastlane, TestFlight,
   App Store submission.

## Technology Stack

| Layer | Tools |
|-------|-------|
| Language | Swift (primary), Objective-C (legacy) |
| UI | SwiftUI, UIKit, Combine |
| Architecture | MVVM, TCA (The Composable Architecture), Coordinator |
| Networking | URLSession, Alamofire, async/await |
| Persistence | SwiftData, Core Data, Realm, UserDefaults, Keychain |
| Async | Swift Concurrency (async/await, actors), Combine |
| Dependencies | Swift Package Manager, CocoaPods (legacy) |
| Testing | XCTest, XCUITest, Quick/Nimble, SnapshotTesting |
| CI/CD | Xcode Cloud, Fastlane, GitHub Actions |
| Analytics | Firebase, Mixpanel, Crashlytics |

## Best Practices

- SwiftUI-first for new projects; UIKit for legacy or complex custom views.
- Follow Apple Human Interface Guidelines (HIG).
- Use Swift Concurrency (async/await, actors) over GCD where possible.
- Adopt `@Observable` (iOS 17+) or `ObservableObject` for state management.
- Keep views declarative — move logic to view models or domain layer.
- Accessibility: VoiceOver labels, Dynamic Type support, sufficient contrast.
- Universal purchase and adaptive layout for iPhone + iPad.
- Use `Sendable` and actor isolation to prevent data races.

## Anti-Patterns to Avoid

- Massive View Controllers / SwiftUI views with embedded business logic.
- Force unwrapping (`!`) without safety checks.
- Ignoring App Store review guidelines until submission.
- Hardcoded strings — use `Localizable.strings` / String Catalogs.
- Blocking the main actor with synchronous work.

## References

- `references/ios-architecture-guide.md` — architecture patterns and decisions
- `references/app-store-checklist.md` — submission checklist
- `references/swiftui-patterns.md` — SwiftUI best practices

## Expected Output Format

1. Working code following project conventions
2. Tests passing (unit + UI)
3. Build successful on target devices/simulators
4. Screenshots for UI changes

