Skip to content

Lower iOS deployment target to 16.0 via swift-perception#380

Merged
futurepaul merged 2 commits intomasterfrom
ios16-perception-backport
Mar 2, 2026
Merged

Lower iOS deployment target to 16.0 via swift-perception#380
futurepaul merged 2 commits intomasterfrom
ios16-perception-backport

Conversation

@futurepaul
Copy link
Collaborator

Summary

  • Lowers iOS deployment target from 17.0 to 16.0 using Point-Free's swift-perception library
  • Migrates 4 @Observable classes to @Perceptible (AppManager, VoiceRecorder, VoiceMessagePlayer, VideoCallPipeline)
  • Replaces 16 .onChange call sites with iOS 16-compatible helpers
  • Adds #available guards for iOS 17+ APIs: AVAudioApplication, UnevenRoundedRectangle, onKeyPress, scrollBounceBehavior
  • Adds -skipMacroValidation to all xcodebuild invocations (required for Swift macro packages)

Files changed

New helpers:

  • OnChangeCompat.swift — three .onChange overloads with iOS 16 fallbacks
  • UnevenRoundedRectangleCompat.swift — per-corner-radius shape for iOS 16
  • ReturnKeyPressCompat.swiftonKeyPress guard for iOS 17+
  • ScrollBounceCompat.swiftscrollBounceBehavior guard for iOS 16.4+

Config:

  • project.yml — deployment target 17→16, Perception package dependency
  • justfileIOS_MIN 17→16, -skipMacroValidation, -destination for macro compat
  • tools/run-ios, tools/ui-e2e-local, tools/ui-e2e-public-skipMacroValidation

Test plan

  • Verify just ios-build-sim compiles with zero Swift errors (linker requires fresh Rust build)
  • Run on iOS 16 simulator and verify observation/reactivity works
  • Run on iOS 17+ device to verify no regressions
  • Verify .onChange behavior (nav stack sync, toast, call state transitions)

🤖 Generated with Claude Code

Use Point-Free's swift-perception library to backport @observable
semantics to iOS 16. Migrate 4 @observable classes to @perceptible,
replace 16 .onChange call sites with iOS 16-compatible helpers, and
add availability guards for iOS 17+ APIs (AVAudioApplication,
UnevenRoundedRectangle, onKeyPress, scrollBounceBehavior).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Explains @perceptible, WithPerceptionTracking, onChangeCompat,
and other helpers so contributors know the patterns for new code.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@futurepaul futurepaul merged commit 4eacbe2 into master Mar 2, 2026
28 of 30 checks passed
@futurepaul futurepaul deleted the ios16-perception-backport branch March 2, 2026 05:34
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.

1 participant