-
Notifications
You must be signed in to change notification settings - Fork 31
feat: update braze integration to the latest version #206
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: update braze integration to the latest version #206
Conversation
📝 WalkthroughWalkthroughThe changes update platform and dependency version constraints in configuration files for both iOS and Android within the example and integration packages. The minimum iOS deployment target is raised to 13.0, Android SDK versions are increased, and dependency versions for RudderStack and Braze integrations are updated to newer ranges. No logic or exported API changes are present. Changes
Assessment against linked issues
Tip ⚡️ Faster reviews with caching
Enjoy the performance boost—your workflow just got faster. 📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (1)
⏰ Context from checks skipped due to timeout of 90000ms (2)
🔇 Additional comments (2)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
packages/example/ios/Podfile.lock
is excluded by!**/*.lock
,!**/*.lock
📒 Files selected for processing (3)
packages/example/ios/Podfile
(1 hunks)packages/integrations/rudder_integration_braze_flutter/android/build.gradle
(1 hunks)packages/integrations/rudder_integration_braze_flutter/ios/rudder_integration_braze_flutter.podspec
(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (2)
- GitHub Check: Unit Tests, Coverage & Sonar
- GitHub Check: Build & Code Quality Checks
🔇 Additional comments (4)
packages/example/ios/Podfile (1)
2-2
:✅ Verification successful
Platform version bump confirmed.
The iOS deployment target has been increased from 12.0 to 13.0, which aligns with the requirements in the updated Braze integration podspec. This change means the app will no longer support devices running iOS 12.x (iPhone 5s, iPhone 6/6 Plus, older iPads).
🏁 Script executed:
#!/bin/bash # Check if this platform version is consistent with all integration podspecs echo "Checking iOS platform versions across podspecs:" find . -name "*.podspec" -exec grep -l "platform.*ios" {} \; | xargs grep "platform.*ios"Length of output: 1348
iOS Deployment Target Alignment Verified
File:
packages/example/ios/Podfile
Lines: 2–2Snippet
platform :ios, '13.0'
Comment
The example Podfile’s iOS deployment target has been bumped from 12.0 to 13.0, matching the highest minimum requirement across all integration podspecs:
packages/integrations/rudder_integration_braze_flutter/ios/rudder_integration_braze_flutter.podspec
: iOS 13.0- All other integrations and plugins: iOS 9.0–11.0
This ensures full compatibility with the updated Braze podspec and satisfies every other dependency. Note that devices on iOS 12.x and below are no longer supported.
packages/integrations/rudder_integration_braze_flutter/android/build.gradle (1)
38-38
:❓ Verification inconclusive
Core SDK version constraint update.
The Rudder Android Core SDK dependency constraint has been updated from
1.7.0
to[1.27.1, 2.0.0)
. This is a significant version bump that may include breaking changes or new requirements. Verify that the example app and integration tests still work with this change.
🏁 Script executed:
#!/bin/bash # Check for any compatibility notes in release information echo "Checking Rudder Android SDK changelog and release notes..." curl -s https://raw.githubusercontent.com/rudderlabs/rudder-sdk-android/main/CHANGELOG.md | head -n 30Length of output: 246
Core SDK version constraint update
The Rudder Android Core SDK dependency has been bumped from
implementation 'com.rudderstack.android.sdk:core:1.7.0'
to
implementation 'com.rudderstack.android.sdk:core:[1.27.1, 2.0.0)'
This is a major version jump and may introduce breaking changes or new requirements. I wasn’t able to find a local CHANGELOG.md—please:
- Review the release notes for v1.27.1 on GitHub (e.g. https://github.com/rudderlabs/rudder-sdk-android/releases/tag/v1.27.1)
- Run the example app and Android integration tests to confirm nothing breaks (for example with
./gradlew :example:installDebug
and./gradlew :integration-tests:connectedCheck
)Location to verify:
- packages/integrations/rudder_integration_braze_flutter/android/build.gradle (line 38)
packages/integrations/rudder_integration_braze_flutter/ios/rudder_integration_braze_flutter.podspec (2)
22-22
:❓ Verification inconclusive
Platform requirement increased.
The minimum iOS platform version has been raised from 9.0 to 13.0, which is a significant jump. This aligns with the update in the example app's Podfile and is likely required by the newer Braze SDK version. This change will exclude support for older iOS devices that cannot upgrade to iOS 13.
🏁 Script executed:
#!/bin/bash # Check iOS version requirements in the Braze SDK documentation echo "Checking iOS platform requirements in Braze documentation..." # This would typically require a web search, but we can check local references grep -r "iOS.*1[3-9]" --include="*.md" --include="*.txt" . || echo "No direct references found in documentation" echo -e "\nChecking minimum iOS versions in other podspecs..." find . -name "*.podspec" | xargs grep -l "platform.*ios" | xargs grep "platform.*ios"Length of output: 20449
Action Required: Confirm Braze iOS SDK’s minimum supported iOS version
The Podspec in
packages/integrations/rudder_integration_braze_flutter/ios/rudder_integration_braze_flutter.podspec
has been bumped to iOS 13.0, but no local docs reference this requirement. Please:
- Verify against the official Braze iOS SDK release notes that iOS 13.0 is indeed the minimum supported platform.
- Update the integration’s README and CHANGELOG to call out the iOS 13.0 requirement.
- Ensure the example app’s Podfile and any consumer-facing docs reflect this platform bump.
Files to check:
packages/integrations/rudder_integration_braze_flutter/ios/rudder_integration_braze_flutter.podspec
(line 22:s.platform = :ios, '13.0'
)
21-21
:❓ Verification inconclusive
Significant Braze iOS SDK version update.
The Rudder-Braze iOS dependency has been updated from a fixed version
1.0.3
to a version range~> 4.0
. This is a very significant update (1.x to 4.x) that likely contains breaking changes, new features, and potentially different API requirements.
🌐 Web query:
What are the major changes between Rudder-Braze iOS SDK 1.0 and 4.0?
💡 Result:
The Rudder-Braze iOS SDK has undergone several significant updates between versions 1.0 and 4.0. Here are the major changes:
1. Integration with Braze iOS SDK:
- Version 1.0: Utilized Braze iOS SDK 3.27.0, adding support for iOS 14 and requiring Xcode 12.
- Version 4.0: Integrated with Braze iOS SDK 5.11.2, aligning with the latest features and improvements.
2. In-App Messaging and Content Cards:
- Version 1.0: Introduced support for in-app messaging and content cards.
- Version 4.0: Enhanced in-app messaging by removing the
setBrazeInAppMessageCallback()
andsetBrazeContentCardsCallback()
methods, transitioning to a stream-based subscription model for better performance and scalability. (braze.com)3. Event Logging Behavior:
- Version 1.0: Event logging for in-app messages and content cards included both sending a click event and redirecting to the associated URL.
- Version 4.0: Modified the behavior so that calling
logClick
now only sends a click event for metrics, without redirecting to the URL. To achieve both logging and redirection, developers need to implement a custom solution. (braze.com)4. Android Bridge Updates:
- Version 1.0: Integrated with Braze Android SDK 8.1.0.
- Version 4.0: Updated to Braze Android SDK 24.3.0, ensuring compatibility with the latest Android features and improvements. (braze.com)
5. Versioning and Compatibility:
- Version 1.0: Initial release without semantic versioning.
- Version 4.0: Adopted semantic versioning to provide clearer versioning and compatibility guidelines. (braze.com)
These updates reflect the SDK's evolution to enhance performance, align with the latest Braze SDK versions, and improve developer experience through more efficient integration patterns.
Citations:
- 1: https://www.braze.com/docs/developer_guide/platform_integration_guides/flutter/changelog?utm_source=openai
- 2: https://www.braze.com/docs/developer_guide/platform_integration_guides/flutter/changelog?utm_source=openai
- 3: https://www.braze.com/docs/developer_guide/platform_integration_guides/flutter/changelog?utm_source=openai
- 4: https://www.braze.com/docs/developer_guide/platform_integration_guides/flutter/changelog?utm_source=openai
🏁 Script executed:
#!/bin/bash set -e # Search for deprecated callback methods in the iOS plugin code rg "setBrazeInAppMessageCallback" -A2 rg "setBrazeContentCardsCallback" -A2 # Locate the iOS integration class for contextual path rg "class RudderIntegrationBrazeFlutter" -g "*.swift" -A5Length of output: 46
Review Braze iOS SDK 4.0 Integration for Breaking Changes
The upgrade from
Rudder-Braze
1.x →~> 4.0
pulls in Braze iOS SDK 5.11.2 and introduces several breaking changes. Please verify that the Flutter plugin’s iOS code has been updated accordingly:
- Confirm removal of the deprecated
setBrazeInAppMessageCallback()
and
setBrazeContentCardsCallback()
methods and adoption of the new stream-based subscription APIs.- Ensure event-click logging no longer auto-redirects; if you need both metrics and navigation, implement a custom handler.
- Double-check any other revamped Braze callbacks or initialization parameters required by SDK 5.x.
packages/integrations/rudder_integration_braze_flutter/android/build.gradle
Show resolved
Hide resolved
|
Description of the change
NOTE: I'm not marking it as a breaking change version, otherwise, it might increase the major version for other packages as well.
Type of change
Related issues
Checklists
Development
Code review
Summary by CodeRabbit