skills/mobile/ios-swift/SKILL.md
Swift for iOS: UIKit/SwiftUI basics, Swift concurrency in iOS, Xcode project structure, targets
npx skillsauth add alphaonedev/openclaw-graph ios-swiftInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill equips the AI to assist with Swift-based iOS development, focusing on UIKit and SwiftUI fundamentals, concurrency patterns, and Xcode project management for efficient app building.
import UIKit or import SwiftUI.func fetchData() async -> Data { ... } and call it via Task { await fetchData() }../MyApp.xcodeproj and specify targets in commands.xcodebuild -workspace MyWorkspace.xcworkspace -scheme MyScheme -configuration Debug build to compile a project; add -sdk iphonesimulator for simulator testing.struct MyView: View { var body: some View { Text("Hello").padding() } }; render it in an app entry point.let vc = UIViewController(); vc.view.backgroundColor = .white; present(vc, animated: true).func loadImage() async throws -> UIImage {
let data = try await URLSession.shared.data(from: URL(string: "https://example.com/image")!)
return UIImage(data: data.0) ?? UIImage()
}
xcode-select -p and set $XCODE_PATH environment variable if custom (e.g., export XCODE_PATH=/Applications/Xcode.app).altool --upload-app -f myapp.ipa -u [email protected] -p $APPLE_API_KEY..package(url: "https://github.com/apple/swift-algorithms", from: "1.0.0").xcodebuild test -scheme MyScheme -destination 'platform=iOS Simulator,name=iPhone 14'.do { let data = try await fetchData() } catch let error { print("Error: \(error.localizedDescription)") } to handle async failures.xcodebuild for common errors: e.g., if "Code Sign error: No matching provisioning profile found", ensure profiles are set via xcodebuild -exportArchive -archivePath build/MyApp.xcarchive -exportPath output -exportOptionsPlist ExportOptions.plist.Task with cancellation, like let task = Task { try await function() }; task.cancel() to avoid leaks.viewDidLoad to log errors; in SwiftUI, use .onAppear { print("View appeared") } to trace lifecycle problems.struct ContentView: View { var body: some View { VStack { Text("Welcome").font(.title) Button("Tap") { print("Tapped") } } } }; then integrate it into an Xcode project by adding it to the main App struct and building with xcodebuild -scheme MyApp build.xcodebuild -target MyExtensionTarget -configuration Release.tools
Root web development: project structure, tooling selection, deployment decisions
development
WebAssembly: Rust/Go/C to WASM, wasm-bindgen, Emscripten, WASM Component Model
development
Vue 3: Composition API script setup, Pinia, Vue Router 4, SFCs, Vite, Nuxt 3
tools
Tailwind CSS 4: utility classes, config, JIT, arbitrary values, darkMode, plugins, shadcn/ui