Comprehensive iOS SDK code review for Payoo iOS Frameworks. Checks Clean Architecture patterns, MVVM implementation, UseCase patterns, memory management, naming conventions, API design, and Swift best practices. Use when "review code", "check code", "code review", "review PR", or analyzing Swift files in this project.
View on GitHubdaispacy/py-claude-marketplace
py-plugin
py-plugin/skills/ios-sdk-code-review/SKILL.md
January 20, 2026
Select agents to install to:
npx add-skill https://github.com/daispacy/py-claude-marketplace/blob/main/py-plugin/skills/ios-sdk-code-review/SKILL.md -a claude-code --skill ios-sdk-code-reviewInstallation paths:
.claude/skills/ios-sdk-code-review/# iOS SDK Code Review
Perform comprehensive code reviews for Payoo iOS Frameworks following Clean Architecture, MVVM, and iOS SDK best practices.
## When to Activate
- "review code", "code review", "check this code"
- "review PR", "review pull request", "review MR"
- "check iOS code", "review Swift code"
- User asks about code quality or best practices
- Reviewing ViewModels, ViewControllers, UseCases, or DataSources
## Review Process
### 1. Identify Code Context
Determine what's being reviewed:
- **File type**: ViewModel, ViewController, UseCase, DataSource, Model, Service
- **Framework**: PayooCore, PayooEwallet, PayooPayment, etc.
- **Layer**: Presentation (Scenes), Domain (UseCase), Data (DataSources/Services)
### 2. Architecture Review
**Clean Architecture Compliance:**
- ✓ Proper layer separation (Presentation/Domain/Data)
- ✓ Dependencies point inward (Presentation → Domain → Data)
- ✓ ViewModels don't directly access Services (must use UseCases)
- ✓ Models in correct layer (Domain models vs Data models)
**MVVM Pattern:**
- ✓ ViewModel has protocol definition (`{Feature}ViewModelType`)
- ✓ Delegate protocol exists (`{Feature}ViewModelDelegate`)
- ✓ ViewController implements delegate
- ✓ ViewModel is testable (no UIKit dependencies)
- ✓ View state managed through delegate callbacks
**UseCase Pattern:**
- ✓ Business logic in UseCases, not ViewModels
- ✓ Single responsibility per UseCase
- ✓ UseCases injected into ViewModels
- ✓ UseCases coordinate repositories/services
### 3. Memory Management Review
**Retain Cycles:**
- ✓ Delegates marked `weak`
- ✓ Closures use `[weak self]` or `[unowned self]` appropriately
- ✓ No strong reference cycles in ViewModels
- ✓ Timer/observer cleanup in `deinit`
**Example issues:**
```swift
// ❌ BAD: Strong delegate reference
var delegate: SomeDelegate?
// ✅ GOOD: Weak delegate reference
weak var delegate: SomeDelegate?
// ❌ BAD: Strong self in closure
viewModel.loadData { data in
self.updateUI(data)
}
// ✅ GOO