.claude/skills/ios-expert/SKILL.md
iOS development expert including SwiftUI, UIKit, and Apple frameworks
npx skillsauth add oimiragieo/agent-studio ios-expertInstall 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.
When reviewing or writing code, apply these guidelines:
When reviewing or writing code, apply these guidelines:
When reviewing or writing code, apply these guidelines:
@MainActor for UI updates — SwiftUI and UIKit views must be modified on the main thread; background thread UI updates cause runtime crashes or silent visual corruption.@State for data that is shared between views — @State is local to the view and does not propagate changes to siblings or parents; use @ObservedObject, @EnvironmentObject, or @StateObject for shared model data.[weak self] in closures that capture self — strong self capture in closures that are held by the captured object creates retain cycles and memory leaks.const constructors and mark SwiftUI views as struct — class-based SwiftUI views lose automatic diffing optimization; struct views enable efficient identity tracking.| Anti-Pattern | Why It Fails | Correct Approach |
| ------------------------------------- | --------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| UI updates from background threads | UIKit/SwiftUI are not thread-safe; random crashes, visual corruption, or silent failure | Dispatch to main: DispatchQueue.main.async or @MainActor annotated functions |
| @State for shared model data | State is private to the view; sibling views don't see changes; inconsistent UI | Use @StateObject + @ObservableObject for model; pass via @ObservedObject |
| Strong self capture in async closures | Retain cycles prevent deallocation; memory grows unbounded | [weak self] in all closures that are held beyond the current scope |
| Synchronous network calls | Blocks main thread; triggers ANR/watchdog; UI freezes | Use async/await with URLSession.data(for:) or Combine; always on background |
| Class-based SwiftUI views | Opt out of struct diffing optimization; slower rendering; lifecycle issues | Define all views as struct; only use class for ObservableObject models |
This expert skill consolidates 1 individual skills:
Before starting:
cat .claude/context/memory/learnings.md
After completing: Record any new patterns or exceptions discovered.
ASSUME INTERRUPTION: Your context may reset. If it's not in memory, it didn't happen.
tools
Comprehensive biosignal processing toolkit for analyzing physiological data including ECG, EEG, EDA, RSP, PPG, EMG, and EOG signals. Use this skill when processing cardiovascular signals, brain activity, electrodermal responses, respiratory patterns, muscle activity, or eye movements. Applicable for heart rate variability analysis, event-related potentials, complexity measures, autonomic nervous system assessment, psychophysiology research, and multi-modal physiological signal integration.
tools
Comprehensive toolkit for creating, analyzing, and visualizing complex networks and graphs in Python. Use when working with network/graph data structures, analyzing relationships between entities, computing graph algorithms (shortest paths, centrality, clustering), detecting communities, generating synthetic networks, or visualizing network topologies. Applicable to social networks, biological networks, transportation systems, citation networks, and any domain involving pairwise relationships.
data-ai
Molecular featurization for ML (100+ featurizers). ECFP, MACCS, descriptors, pretrained models (ChemBERTa), convert SMILES to features, for QSAR and molecular ML.
development
Run Python code in the cloud with serverless containers, GPUs, and autoscaling. Use when deploying ML models, running batch processing jobs, scheduling compute-intensive tasks, or serving APIs that require GPU acceleration or dynamic scaling.