17 Commits

Author SHA1 Message Date
Paul Hudson be297ff80d v1.1. 1.1.0 2026-04-20 09:02:15 +01:00
Paul Hudson e7ffacb2c8 Update views.md
More adjustments around extracting properties.
2026-04-20 09:00:32 +01:00
Paul Hudson daff158a24 Merge pull request #14 from Jeehut/soften-extract-views-rule
Soften "extract all computed views" rule — current wording worsens code
2026-04-20 08:56:44 +01:00
Cihat Gündüz 098de2a70d Add narrow exception for private readability-only view helpers
The existing rule forbids breaking up view bodies with computed
properties or methods — even with `@ViewBuilder` — and requires
extraction into separate `View` structs in their own files. The
reasoning is sound: SwiftUI can diff and skip struct-based subviews
when inputs haven't changed, whereas a computed property on the parent
re-runs on every `body` invalidation.

Applied mechanically, however, the rule also flags private, single-use
helpers inside small, single-responsibility views — helpers whose only
purpose is to give a descriptive name to a tightly-coupled section of
`body` in place of an explanatory comment. For that specific case the
performance argument is a wash: a computed property and the equivalent
inlined code both re-run on every `body` invalidation, so struct
extraction buys nothing but file-sprawl there.

This change adds a single bullet right after the rule:

  Do not rewrite private helpers that exist only for structural
  readability, belong to the same concern as `body` (not a distinct
  responsibility), and would fit in `body` at an acceptable length if
  inlined.

All three criteria — private + same concern + not-excessive-when-
inlined — must hold for the exception to apply. Otherwise the main
rule stands: decomposition for performance, distinct responsibility,
reuse, or own state still means extracting into separate `View`
structs in their own files.

The duplicate reminder at the bottom of the file is kept (the repeat
is emphasis), with one short addition to its aside so a reader
scanning only the bottom half of the file still sees that the
exception applies there too.

The "flag excessively long body" bullet is untouched; it stays
internally consistent with the exception's "acceptable length if
inlined" clause.
2026-04-18 23:52:56 +02:00
Paul Hudson b628ad4efe Update installation instructions for SwiftUI Pro
Removed installation instructions for Claude Code and consolidated SwiftUI Pro installation steps.
2026-04-16 12:40:38 +01:00
Paul Hudson f7309bdc9e Update accessibility guidelines for buttons and images
Clarified guidelines for accessibility in buttons with image labels and provided additional context for visual-only buttons.
2026-04-16 12:28:43 +01:00
Paul Hudson 9c54452667 Update design.md for LabeledContent usage
Clarified usage of LabeledContent outside Form for title-value displays.
2026-04-16 12:26:47 +01:00
Paul Hudson f3e4863f6c Merge pull request #15 from Jeehut/add-label-style-and-labeled-content-guidance
Add Label style and LabeledContent guidance — current button rule changes UI unintentionally
2026-04-16 20:17:36 +09:00
Paul Hudson fbc5cdccff Merge pull request #13 from GLinnik21/add-claude-code-plugin-support
Add Claude Code plugin marketplace support
2026-04-16 20:03:35 +09:00
Cihat Gündüz e9cab01951 Add labelStyle(.iconOnly) guidance for buttons/menus and expand LabeledContent usage 2026-03-30 09:00:50 +02:00
glinnik21 5fc88c73fa Explicitly declare skills path in plugin.json 2026-03-18 01:40:27 +03:00
glinnik21 ed9889009e Use skills/ structure with CLAUDE_SKILL_DIR for proper reference resolution 2026-03-18 01:36:59 +03:00
glinnik21 dd174051e5 Fix invocation command in README 2026-03-18 01:12:11 +03:00
glinnik21 dea694bac4 Add Claude Code plugin support 2026-03-18 01:08:47 +03:00
Paul Hudson 61b74001b6 YouTube link update. 2026-03-11 16:48:35 +00:00
Paul Hudson 2629356956 Added an extra SwiftData performance tip; linked to other skills. 1.0.0 2026-03-11 15:50:51 +00:00
Paul Hudson 36163743db Initial commit. 2026-03-05 20:13:26 +00:00