Skip to content

feat: [SDK-5033] add shared Turbine feature-flags client - #19

Open
abdulraqeeb33 wants to merge 1 commit into
mainfrom
ar/sdk-5033
Open

feat: [SDK-5033] add shared Turbine feature-flags client#19
abdulraqeeb33 wants to merge 1 commit into
mainfrom
ar/sdk-5033

Conversation

@abdulraqeeb33

Copy link
Copy Markdown
Collaborator

Summary

  • Moves Turbine feature-flags path validation, JSON parse, and fetch orchestration into com.onesignal.features so Android and iOS hosts can reuse one client.
  • Hosts inject HTTP via IFeatureFlagsHttp (same port/adapter shape as ILogHttpSender). Caching, foreground refresh, and console logging stay on the platform.
  • Recovers the uncommitted WIP from ar/kmp-feature-flags-client (never pushed) and lands it against main.

Linear: https://linear.app/onesignal/issue/SDK-5033/move-turbine-feature-flags-client-into-shared-kmp

Test plan

  • ./gradlew :kmp:testDebugUnitTest :kmp:iosSimulatorArm64Test spotlessCheck
  • Android follow-up: wrap FeatureFlagsBackendService around FeatureFlagsClient and pin the KMP submodule to this branch (adapter is in a local stash on OneSignal-Android-SDK)
  • Before iOS consumes this: flatten the sealed RemoteFeatureFlagsFetchOutcome and JsonObject metadata at the Obj-C boundary (called out in review)

Made with Cursor

Move path validation, JSON parse, and fetch orchestration into
com.onesignal.features so Android and iOS hosts can reuse one client.

Co-authored-by: Cursor <cursoragent@cursor.com>
@abdulraqeeb33
abdulraqeeb33 requested a review from a team as a code owner August 14, 2026 16:32
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