Skip to content

Add version-segmented deprecated API guide (latest-apis.md)#28

Merged
AvdLee merged 6 commits intomainfrom
feature/latest-apis-deprecation-guide
Feb 27, 2026
Merged

Add version-segmented deprecated API guide (latest-apis.md)#28
AvdLee merged 6 commits intomainfrom
feature/latest-apis-deprecation-guide

Conversation

@AvdLee
Copy link
Owner

@AvdLee AvdLee commented Feb 27, 2026

Summary

Based on a comparison of Apple's documentation using the Sosumi MCP, we found the latest recommended APIs to use. This PR enriches the SwiftUI Expert Skill with a comprehensive deprecated-to-modern API guide, version-segmented by minimum deployment target.

Files changed:

  • swiftui-expert-skill/SKILL.md -- elevated latest-apis.md as required first step in all workflows + added review checklist section
  • swiftui-expert-skill/references/latest-apis.md -- new file with version-segmented code examples for 25+ deprecated-to-modern API transitions

New Deprecated-to-Modern Transitions Added

Category Deprecated Recommended Since
Accessibility accessibility(label:) accessibilityLabel() iOS 15+
Accessibility accessibility(value:) accessibilityValue() iOS 15+
Accessibility accessibility(hidden:) accessibilityHidden() iOS 15+
Accessibility accessibility(hint:) accessibilityHint() iOS 15+
Accessibility accessibility(addTraits:) accessibilityAddTraits() iOS 15+
Accessibility accessibility(removeTraits:) accessibilityRemoveTraits() iOS 15+
Appearance accentColor(_:) tint(_:) iOS 16+
Appearance colorScheme(_:) preferredColorScheme(_:) iOS 15+
Appearance foregroundColor(_:) foregroundStyle() iOS 15+
Appearance cornerRadius(_:) clipShape(.rect(cornerRadius:)) iOS 15+
Navigation navigationBarTitle(_:) navigationTitle(_:) iOS 15+
Navigation navigationBarItems(...) toolbar { ToolbarItem(...) } iOS 15+
Navigation navigationBarHidden(_:) toolbarVisibility(.hidden, for: .navigationBar) iOS 15+
Navigation navigationViewStyle(_:) Use NavigationStack/NavigationSplitView directly iOS 16+
Navigation statusBar(hidden:) statusBarHidden(_:) iOS 15+
Navigation NavigationView NavigationStack / NavigationSplitView iOS 16+
Layout edgesIgnoringSafeArea(_:) ignoresSafeArea(_:edges:) iOS 15+
Layout coordinateSpace(name:) coordinateSpace(.named(...)) iOS 17+
Layout GeometryReader (for sizing) containerRelativeFrame() / visualEffect() iOS 17+
Text Input autocapitalization(_:) textInputAutocapitalization(_:) iOS 15+
Text Input disableAutocorrection(_:) autocorrectionDisabled(_:) iOS 16+
Text Input TextField onCommit/onEditingChanged onSubmit + focused iOS 15+
Presentation actionSheet(...) confirmationDialog(...) iOS 15+
Presentation alert(isPresented:content:) alert(_:isPresented:actions:message:) iOS 15+
Animation animation(_:) (no value) animation(_:value:) iOS 17+
Gestures MagnificationGesture MagnifyGesture iOS 17+
Gestures RotationGesture RotateGesture iOS 17+
State ObservableObject @Observable iOS 17+
Tabs tabItem(_:) Tab API iOS 18+
Environment Manual EnvironmentKey @Entry macro iOS 18+

Version Segmentation

The guide is organized by minimum deployment target so agents apply the correct subset:

  • Always (iOS 15+) -- 13 entries for APIs deprecated long enough to never use
  • When targeting iOS 16+ -- 4 entries including NavigationStack and tint
  • When targeting iOS 17+ -- 7 entries including Observable, onChange, and gesture renames
  • When targeting iOS 18+ -- 3 entries including Tab API and @entry macro
  • When targeting iOS 26+ -- Liquid Glass APIs and new scroll/tab features

Test plan

  • Verify SKILL.md stays under 500 lines (skill-creator guideline) -- currently 244 lines
  • Verify all references/latest-apis.md links in SKILL.md resolve correctly
  • Review code examples use correct SwiftUI API signatures
  • Confirm version annotations match Apple's official availability

AvdLee and others added 2 commits February 27, 2026 13:19
Based on a comparison of Apple's documentation using the Sosumi MCP,
we found the latest recommended APIs to use. This adds a comprehensive
deprecated-to-modern API reference with 25+ transitions organized by
minimum deployment target (iOS 15+ through iOS 26+).

- Create references/latest-apis.md with version-segmented code examples
- Elevate latest-apis.md as required first step in all SKILL.md workflows
- Add Latest APIs review checklist section
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ed6cb9be04

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

- Move @entry macro to "Always Use" section: Apple docs confirm it
  back-deploys to iOS 13+ (Xcode 16 macro, not iOS 18+ only)
- Remove GeometryReader from deprecated lookup table: it is not
  deprecated, containerRelativeFrame/visualEffect are alternatives
  for specific use cases, not replacements
- Reframe GeometryReader prose as a suggestion per AGENTS.md guidelines
The @observable and onChange checklist items are specific instances
already covered by "No deprecated modifiers used" + the required
latest-apis.md reference. Keeping them would imply they're more
important than the other 20+ transitions in the guide.

### Animation

**Use `animation(_:value:)` instead of `animation(_:)` without a value parameter.**
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

animation(_:value:) is back deployed to iOS 13+, it should be added to the always use section


## When Targeting iOS 26+

### Liquid Glass
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should remove the Liquid Glass section from her since we already have a reference for it, What do you think ?

@EngOmarElsayed
Copy link
Collaborator

@AvdLee Nice one man ❤️

… Liquid Glass section

- Move animation(_:value:) from iOS 17+ to Always Use section since
  it back-deploys to iOS 13+
- Remove entire "When Targeting iOS 26+" section (Liquid Glass, scroll
  edge effects, background extension, tab bar) since it duplicates
  the existing references/liquid-glass.md and these are new APIs,
  not deprecated-to-modern transitions
- Update Table of Contents and Quick Lookup Table accordingly
Only the Liquid Glass subsection should have been removed (it
duplicates references/liquid-glass.md). The other iOS 26+ entries
(scroll edge effects, background extension, tab bar minimize) are
new API guidance and belong here.

- Re-add iOS 26+ to Table of Contents
- Replace Liquid Glass code examples with a link to liquid-glass.md
- Keep Scroll Edge Effects, Background Extension, Tab Bar subsections
Base automatically changed from swiftlee-articles-optimization to main February 27, 2026 17:27
@AvdLee AvdLee merged commit b693c27 into main Feb 27, 2026
1 check passed
@AvdLee AvdLee deleted the feature/latest-apis-deprecation-guide branch February 27, 2026 17:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants