Skip to content

Conversation

@BrandonStalnaker
Copy link
Collaborator

Background

  • Part of the ongoing effort to migrate the SDK to source-based distribution instead of shipping as binaries
  • Swift files in the main SDK target create complications for SPM source distribution due to mixed-language framework limitations
  • Converting public Swift classes to Objective-C enables cleaner source-based integration for customers

What Has Changed

  • Converted MPRoktEvent.swift to Objective-C (MPRoktEvent.h and MPRoktEvent.m)
  • All 14 event classes (MPRoktEvent, MPRoktInitComplete, MPRoktShowLoadingIndicator, MPRoktHideLoadingIndicator, MPRoktPlacementInteractive, MPRoktPlacementReady, MPRoktOfferEngagement, MPRoktOpenUrl, MPRoktPositiveEngagement, MPRoktPlacementClosed, MPRoktPlacementCompleted, MPRoktPlacementFailure, MPRoktFirstPositiveEngagement, MPRoktCartItemInstantPurchase) are now implemented in Objective-C
  • Added comprehensive unit tests for all event types in MPRoktEventTests.m
  • Updated existing test file imports to reference the new header

Checklist

  • I have performed a self-review of my own code.
  • I have added tests that prove my fix is effective or that my feature works.
  • I have tested this locally.

Reference Issue (For employees only. Ignore if you are an outside contributor)

@BrandonStalnaker BrandonStalnaker self-assigned this Feb 2, 2026
@BrandonStalnaker BrandonStalnaker requested a review from a team as a code owner February 2, 2026 15:48
@github-actions
Copy link

github-actions bot commented Feb 2, 2026

📦 SDK Size Impact Report

Measures how much the SDK adds to an app's size (with-SDK minus without-SDK).

Metric Target Branch This PR Change
App Bundle Impact 1.63 MB 1.61 MB -20 KB
Executable Impact 896 bytes 896 bytes +N/A
XCFramework Size 6.65 MB 6.41 MB -240 KB

➡️ SDK size impact change is minimal.

Raw measurements

Target branch (workstation/9.0-Release):

{"baseline_app_size_kb":84,"baseline_executable_size_bytes":75464,"with_sdk_app_size_kb":1752,"with_sdk_executable_size_bytes":76360,"sdk_impact_kb":1668,"sdk_executable_impact_bytes":896,"xcframework_size_kb":6808}

This PR:

{"baseline_app_size_kb":84,"baseline_executable_size_bytes":75464,"with_sdk_app_size_kb":1732,"with_sdk_executable_size_bytes":76360,"sdk_impact_kb":1648,"sdk_executable_impact_bytes":896,"xcframework_size_kb":6568}

jamesnrokt
jamesnrokt previously approved these changes Feb 2, 2026
Copy link
Collaborator

@jamesnrokt jamesnrokt left a comment

Choose a reason for hiding this comment

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

Looks good. One question on the migration docs

Copy link
Contributor

@nickolas-dimitrakas nickolas-dimitrakas left a comment

Choose a reason for hiding this comment

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

LGTM

jamesnrokt
jamesnrokt previously approved these changes Feb 2, 2026
@BrandonStalnaker BrandonStalnaker merged commit 6a61cc0 into workstation/9.0-Release Feb 2, 2026
13 of 14 checks passed
@BrandonStalnaker BrandonStalnaker deleted the refactor/SDKE-868/Migrate-MPRoktEvent branch February 2, 2026 18:04
denischilik added a commit that referenced this pull request Feb 2, 2026
…convertToObjc_updated

* workstation/9.0-Release:
  refactor: Migrate MPRoktEvent (#538)
  refactor: migrate SceneDelegateHandler to objc (#539)

# Conflicts:
#	mParticle-Apple-SDK.xcodeproj/project.pbxproj
#	mParticle-Apple-SDK/mParticle.m
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.

4 participants