MCPInstall

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.

Installs
742
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/tornikegomareli/uikit-agent-skill --skill uikit-max
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads uikit-max automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

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:

  1. Check for deprecated API using references/api.md.
  2. Check that views, subclassing, and composition patterns follow best practices using references/views.md.
  3. Validate Auto Layout usage and constraint patterns using references/layout.md.
  4. Ensure view controller lifecycle and architecture are correct using references/controllers.md.
  5. Ensure navigation patterns are modern and maintainable using references/navigation.md.
  6. Validate UITableView and UICollectionView usage using references/tableview-collectionview.md.
  7. Ensure the code uses designs that are accessible and compliant with Apple's Human Interface Guidelines using references/design.md.
  8. Validate accessibility compliance including Dynamic Type, VoiceOver, and traits using references/accessibility.md.
  9. Ensure the code runs efficiently using references/performance.md.
  10. Check concurrency and thread safety using references/concurrency.md.
  11. Quick validation of Swift code using references/swift.md.
  12. 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 #available checks. 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:

  1. State the file and relevant line(s).
  2. Name the rule being violated (e.g., "Use UIAlertController instead of UIAlertView").
  3. 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

  1. Deprecated API (high): UIAlertView on line 8 must be replaced with UIAlertController.
  2. Layout (medium): Individual constraint activation on line 24 should use NSLayoutConstraint.activate.
  3. Layout (medium): Missing translatesAutoresizingMaskIntoConstraints on 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.

FAQ

What does the uikit-max skill do?

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 uikit-max?

Run npx skills add https://github.com/tornikegomareli/uikit-agent-skill --skill uikit-max in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/uikit-max/ (personal) or .claude/skills/uikit-max/ (project).

Which AI agents can use uikit-max?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is uikit-max safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains uikit-max?

It is published by tornikegomareli in tornikegomareli/uikit-agent-skill. It has 742 recorded installs.

Popular code quality & workflow skills

View category →

grill-me

mattpocock/skills

A relentless interview to sharpen a plan or design.

Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.

handoff

mattpocock/skills

Compact the current conversation into a handoff document for another agent to pick up.

domain-modeling

mattpocock/skills

Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.

codebase-design

mattpocock/skills

Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.

diagnosing-bugs

mattpocock/skills

Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.