Skip to content

refactor: Updated Demo apps to both use Swift 6 and Strict Memory Safety#983

Draft
hollyschilling-cio wants to merge 25 commits intomainfrom
hs/DemoAppSwift6
Draft

refactor: Updated Demo apps to both use Swift 6 and Strict Memory Safety#983
hollyschilling-cio wants to merge 25 commits intomainfrom
hs/DemoAppSwift6

Conversation

@hollyschilling-cio
Copy link
Contributor

@hollyschilling-cio hollyschilling-cio commented Jan 27, 2026

First, I'm not sure if calling this a refactor is appropriate or not. Code is only modified within the demo apps. If there is a better label for it, please let me know and I'll change it.

Both demo apps have been updated to use Strict Memory Safety with Swift 6. The SDK is completely unchanged and working in pre-concurrency mode with Swift 5.5

Please actually check out and build the demo apps while reviewing this PR. I'd like a bigger sample size than "it works on my machine."

Complete each step to get your pull request merged in. Learn more about the workflow this project uses.

  • Assign members of your team to review the pull request.
  • Wait for pull request status checks to complete. If there are problems, fix them until you see that all status checks are passing.
  • Wait until the pull request has been reviewed and approved by a teammate
  • After code reviews are approved and you determine this PR is ready to merge, select Squash and Merge button on this screen, leave the title and description to the default values, then merge the PR.

Note

Medium Risk
Medium risk because it upgrades build tooling (Xcode/Swift) and introduces concurrency annotations/locking that can affect runtime behavior and CI stability, though changes are largely confined to sample apps and test/util code.

Overview
Updates CI and release workflows to build sample apps with Xcode 26.2 / iOS 26, including updating the setup action reference, default Xcode version, and simplifying iOS platform download; Fastlane builds now force DWARF v4 debug info for bloaty compatibility.

Migrates both demo apps to Swift 6 + SWIFT_STRICT_MEMORY_SAFETY, adding @MainActor/nonisolated/@Sendable annotations, making the APN demo DI container (DIGraphShared) Sendable with lock-protected storage, and refactoring SwiftUI alert/push-permission flows (removing custom Binding helpers, using .alert(item:), async notification permission checks, and retroactive String: Identifiable).

Makes a few small SDK/internal cleanups to avoid unsafe optional mapping (mapNonNil -> compactMap, subview lookups via first(where:)) and updates unit tests to the Swift Testing framework.

Written by Cursor Bugbot for commit eda4d79. This will update automatically on new commits. Configure here.

@hollyschilling-cio hollyschilling-cio requested a review from a team as a code owner January 27, 2026 20:39
@github-actions
Copy link

github-actions bot commented Jan 27, 2026

Sample app builds 📱

Below you will find the list of the latest versions of the sample apps.
It's recommended to always download the latest builds to test this PR accurately.

@codecov
Copy link

codecov bot commented Jan 27, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 67.94%. Comparing base (7f81928) to head (333b575).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #983      +/-   ##
==========================================
+ Coverage   67.89%   67.94%   +0.05%     
==========================================
  Files         181      182       +1     
  Lines        9524     9506      -18     
==========================================
- Hits         6466     6459       -7     
+ Misses       3058     3047      -11     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor

@mrehan27 mrehan27 left a comment

Choose a reason for hiding this comment

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

Tried running this locally and both apps compiled correctly for me. However, CI is failing and needs to be fixed before merging. Rest looks good.

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Holly Schilling added 3 commits January 29, 2026 08:59
@hollyschilling-cio hollyschilling-cio marked this pull request as draft January 29, 2026 22:00
Holly Schilling added 2 commits February 6, 2026 10:12
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.

3 participants