uikit-max
Comprehensively reviews UIKit code for best practices on modern APIs, architecture, and performance. Use when reading, writing, or reviewing UIKit-based iOS projects, including UIViewController, UITableView, UICollectionView, Auto Layout, or programmatic UI code. Also use when migrating legacy UIKit patterns to modern equivalents. Do not use for SwiftUI-only projects or Combine-only logic with no UIKit dependency.
How do I install this agent skill?
npx skills add https://github.com/tornikegomareli/uikit-agent-skill --skill uikit-maxIs this agent skill safe to install?
- Gen Agent Trust Hubpass
No security issues were detected. The skill provides comprehensive instructions and reference guidelines for reviewing UIKit code, targeting modern APIs including fictional or forward-looking iOS 26 features.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
Review Swift and UIKit code for correctness, modern API usage, and adherence to project conventions. Report only genuine problems — do not nitpick or invent issues.
Review process:
- Check for deprecated API using
references/api.md. - Check that views, subclassing, and composition patterns follow best practices using
references/views.md. - Validate Auto Layout usage and constraint patterns using
references/layout.md. - Ensure view controller lifecycle and architecture are correct using
references/controllers.md. - Ensure navigation patterns are modern and maintainable using
references/navigation.md. - Validate UITableView and UICollectionView usage using
references/tableview-collectionview.md. - Ensure the code uses designs that are accessible and compliant with Apple's Human Interface Guidelines using
references/design.md. - Validate accessibility compliance including Dynamic Type, VoiceOver, and traits using
references/accessibility.md. - Ensure the code runs efficiently using
references/performance.md. - Check concurrency and thread safety using
references/concurrency.md. - Quick validation of Swift code using
references/swift.md. - Final code hygiene check using
references/hygiene.md.
If doing a partial review, load only the relevant reference files.
Core Instructions
- iOS 26 exists and is the latest iOS version. Target iOS 17 or later as the minimum deployment target for new code, unless the project specifies otherwise.
- Target Swift 6.2 or later, using modern Swift concurrency.
- Respect the project's deployment target. Before suggesting a modern API, check its availability. If the project targets an older iOS version, recommend the best available alternative and wrap newer APIs in
if #availablechecks. Reference files mark key APIs with their iOS version (e.g., "iOS 15+"). Do not suggest APIs unavailable at the project's minimum target without providing a fallback. - As a UIKit developer, the user expects UIKit patterns. Do not suggest SwiftUI replacements unless explicitly requested.
- Do not introduce third-party frameworks without asking first.
- Break different types up into different Swift files rather than placing multiple classes, structs, or enums into a single file.
- Use a consistent project structure, with folder layout determined by app features.
- Prefer programmatic UI with Auto Layout anchors over Storyboards and XIBs for new code, unless the project already uses Interface Builder extensively.
Output Format
Organize findings by file. For each issue:
- State the file and relevant line(s).
- Name the rule being violated (e.g., "Use
UIAlertControllerinstead ofUIAlertView"). - Show a brief before/after code fix.
Skip files with no issues. End with a prioritized summary of the most impactful changes to make first.
Example output:
ProfileViewController.swift
Line 8: Use UIAlertController instead of deprecated UIAlertView.
// Before
let alert = UIAlertView(title: "Error", message: msg, delegate: self, cancelButtonTitle: "OK")
alert.show()
// After
let alert = UIAlertController(title: "Error", message: msg, preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default))
present(alert, animated: true)
Line 24: Batch constraint activation with NSLayoutConstraint.activate.
// Before
label.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
label.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
// After
NSLayoutConstraint.activate([
label.topAnchor.constraint(equalTo: view.topAnchor),
label.leadingAnchor.constraint(equalTo: view.leadingAnchor)
])
Line 42: Set translatesAutoresizingMaskIntoConstraints = false before adding constraints.
// Before
view.addSubview(label)
label.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
// After
label.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(label)
NSLayoutConstraint.activate([
label.topAnchor.constraint(equalTo: view.topAnchor)
])
Summary
- Deprecated API (high):
UIAlertViewon line 8 must be replaced withUIAlertController. - Layout (medium): Individual constraint activation on line 24 should use
NSLayoutConstraint.activate. - Layout (medium): Missing
translatesAutoresizingMaskIntoConstraintson line 42 causes constraint conflicts.
End of example.
References
references/api.md— deprecated UIKit APIs and their modern replacements.references/views.md— UIView lifecycle, composition, subclassing, and custom drawing.references/layout.md— Auto Layout, layout anchors, UIStackView, intrinsic content size, Safe Area.references/controllers.md— UIViewController lifecycle, container controllers, avoiding Massive View Controller.references/navigation.md— navigation controllers, tab bars, coordinator pattern, modal presentation.references/tableview-collectionview.md— diffable data sources, compositional layout, cell configuration, prefetching.references/design.md— Human Interface Guidelines, UIAppearance, trait collections, Dark Mode, adaptive layouts.references/accessibility.md— VoiceOver, Dynamic Type, accessibility traits, labels, and hints.references/performance.md— off-screen rendering, layer optimization, image caching, main thread performance.references/concurrency.md— main thread safety, async/await, DispatchQueue migration, background tasks.references/swift.md— modern Swift code, Swift concurrency, Objective-C interop.references/hygiene.md— memory management, retain cycles, KVO/notification cleanup, deinit patterns.
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/tornikegomareli/uikit-agent-skill/uikit-max">View uikit-max on skillZs</a>