ios-swift-development — Claude Code skill: native iOS apps in Swift
A skill for building native iOS apps in Swift: MVVM, SwiftUI, URLSession networking, Combine and Core Data persistence.
npx skills add aj-geddes/useful-ai-prompts --skill ios-swift-development -a claude-codeWhat ios-swift-development does
This skill gives the agent a working frame for native iOS development in Swift. It covers MVVM architecture, declarative UI in SwiftUI, networking through URLSession, reactive streams with Combine, and persistence in Core Data. Async work is written with async/await.
Three reference guides sit in references/: MVVM setup, a network service on URLSession, and SwiftUI views. The main file holds a short example with a User model, an ObservableObject view model and a fetchUser method marked @MainActor. Full implementations live in the guides, so the agent has to open them separately.
A practice list ships with the skill too. Tokens belong in Keychain rather than UserDefaults, network calls stay off the main thread, and force unwrapping or hardcoded API URLs are out. If your project already carries UIKit patterns or keeps passwords in source files, that is worth checking — the agent may follow the old code instead of the guide.
What it helps with
- build a SwiftUI screen backed by an MVVM view model
- write a URLSession network layer with async/await
- wire UI state to a Combine data stream
- persist app entities with Core Data
- move tokens and passwords out of UserDefaults into Keychain
Example prompts for the agent
- Create a profile screen in SwiftUI with an MVVM view model
- Write a network service on URLSession with async/await and error handling
- Add Core Data persistence for users
How to install ios-swift-development
1Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill ios-swift-development -a claude-code2Manually: put the files in place
~/.claude/skills/ios-swift-development/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/ios-swift-development/
1Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill ios-swift-development -a codex2Manually: put the files in place
.agents/skills/ios-swift-development/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill ios-swift-development -a cursor2Manually: put the files in place
.cursor/skills/ios-swift-development/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install aj-geddes/useful-ai-prompts ios-swift-development2Manually: put the files in place
.github/skills/ios-swift-development/SKILL.md1Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill ios-swift-development -a gemini-cli2Platform CLI
gemini skills install https://github.com/aj-geddes/useful-ai-prompts --path skills/ios-swift-developmentManually: put the files in place
.devin/skills/ios-swift-development/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill ios-swift-development -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about ios-swift-development
How do I install ios-swift-development in Claude?
Run npx skills add aj-geddes/useful-ai-prompts --skill ios-swift-development -a claude-code. The skill lands in ~/.claude/skills/ios-swift-development/SKILL.md.
What does ios-swift-development do?
It hands the agent guides on MVVM, SwiftUI, URLSession, Combine and Core Data so it writes native iOS apps in Swift with a consistent structure.
What files come with the skill?
A main SKILL.md with a short example plus a references/ directory holding three guides: MVVM setup, a URLSession network service, and SwiftUI views.
Source text
SKILL.md · MIT
---
name: ios-swift-development
description: >
Develop native iOS apps with Swift. Covers MVVM architecture, SwiftUI,
URLSession for networking, Combine for reactive programming, and Core Data
persistence.
---
# iOS Swift Development
## Table of Contents
- [Overview](#overview)
- [When to Use](#when-to-use)
- [Quick Start](#quick-start)
- [Reference Guides](#reference-guides)
- [Best Practices](#best-practices)
## Overview
Build high-performance native iOS applications using Swift with modern frameworks including SwiftUI, Combine, and async/await patterns.
## When to Use
- Creating native iOS applications with optimal performance
- Leveraging iOS-specific features and APIs
- Building apps that require tight hardware integration
- Using SwiftUI for declarative UI development
- Implementing complex animations and transitions
## Quick Start
Minimal working example:
```swift
import Foundation
import Combine
struct User: Codable, Identifiable {
let id: UUID
var name: String
var email: String
}
class UserViewModel: ObservableObject {
@Published var user: User?
@Published var isLoading = false
@Published var errorMessage: String?
private let networkService: NetworkService
init(networkService: NetworkService = .shared) {
self.networkService = networkService
}
@MainActor
func fetchUser(id: UUID) async {
isLoading = true
errorMessage = nil
// ... (see reference guides for full implementation)
```
## Reference Guides
Detailed implementations in the `references/` directory:
| Guide | Contents |
|---|---|
| [MVVM Architecture Setup](references/mvvm-architecture-setup.md) | MVVM Architecture Setup |
| [Network Service with URLSession](references/network-service-with-urlsession.md) | Network Service with URLSession |
| [SwiftUI Views](references/swiftui-views.md) | SwiftUI Views |
## Best Practices
### ✅ DO
- Use SwiftUI for modern UI development
- Implement MVVM architecture
- Use async/await patterns
- Store sensitive data in Keychain
- Handle errors gracefully
- Use @StateObject for ViewModels
- Validate API responses properly
- Implement Core Data for persistence
- Test on multiple iOS versions
- Use dependency injection
- Follow Swift style guidelines
### ❌ DON'T
- Store tokens in UserDefaults
- Make network calls on main thread
- Use deprecated UIKit patterns
- Ignore memory leaks
- Skip error handling
- Use force unwrapping (!)
- Store passwords in code
- Ignore accessibility
- Deploy untested code
- Use hardcoded API URLs
© aj-geddes · MIT · aj-geddes/useful-ai-prompts