Skip to content

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

Conversation

1abhishekpandey
Copy link
Contributor

@1abhishekpandey 1abhishekpandey commented May 13, 2025

Description of the change

  • Braze-Android integration: Update it to v2.0.0.
  • Braze-iOS integration: Update it to v4.0.0.

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

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Related issues

Fix #1

Checklists

Development

  • Lint rules pass locally
  • The code changed/added as part of this pull request has been covered with tests
  • All tests related to the changed code pass in development

Code review

  • This pull request has a descriptive title and information useful to a reviewer. There may be a screenshot or screencast attached
  • "Ready for review" label attached to the PR and reviewers mentioned in a comment
  • Changes have been reviewed by at least one other engineer
  • Issue from task tracker has a link to this pull request

Summary by CodeRabbit

  • Chores
    • Updated iOS deployment target to 13.0 for improved compatibility.
    • Increased minimum required versions for certain Android and iOS dependencies to ensure support for newer SDK features and integrations.

@1abhishekpandey 1abhishekpandey self-assigned this May 13, 2025
Copy link

coderabbitai bot commented May 13, 2025

📝 Walkthrough

Walkthrough

The 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

File(s) Change Summary
packages/example/ios/Podfile Raised iOS deployment target from 12.0 to 13.0.
packages/example/android/app/build.gradle Increased compileSdk from 34 to 35, minSdkVersion from 21 to 25, and targetSdk from 34 to 35.
packages/integrations/rudder_integration_braze_flutter/android/build.gradle Updated RudderStack core SDK min version to 1.27.1 and Rudder-Braze integration to version range [2.0.0, 3.0.0).
packages/integrations/rudder_integration_braze_flutter/ios/rudder_integration_braze_flutter.podspec Raised iOS deployment target from 9.0 to 13.0 and updated Rudder-Braze dependency to '~> 4.0'.

Assessment against linked issues

Objective Addressed Explanation
Lint rules pass locally, tests covered and passing, descriptive PR, review process (#1) The code changes are configuration only; no information on lint/test status or review process.
Update platform and dependency versions as required (#1)

Tip

⚡️ Faster reviews with caching
  • CodeRabbit now supports caching for code and dependencies, helping speed up reviews. This means quicker feedback, reduced wait times, and a smoother review experience overall. Cached data is encrypted and stored securely. This feature will be automatically enabled for all accounts on May 16th. To opt out, configure Review - Disable Cache at either the organization or repository level. If you prefer to disable all data retention across your organization, simply turn off the Data Retention setting under your Organization Settings.

Enjoy the performance boost—your workflow just got faster.


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5e1ef22 and d134be2.

📒 Files selected for processing (1)
  • packages/example/android/app/build.gradle (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 (2)
packages/example/android/app/build.gradle (2)

28-28: Approve compileSdk bump to 35
Raising compileSdk to 35 aligns the example app with the latest Android APIs. Double-check that all libraries and plugins (including the Braze and RudderStack integrations) compile cleanly against API 35.


34-35: Validate minSdkVersion and targetSdk changes

  • Increasing minSdkVersion from 21 to 25 will drop support for older devices. Confirm this is acceptable for your user base.
  • Raising targetSdk to 35 is recommended, but verify that runtime behavior (permissions, APIs) remains correct on Android 13+.

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.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need 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)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai or @coderabbitai title anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a 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

📥 Commits

Reviewing files that changed from the base of the PR and between 1762dfb and 5e1ef22.

⛔ 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–2

Snippet

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 30

Length 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:

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() and setBrazeContentCardsCallback() 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:


🏁 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" -A5

Length 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.

@1abhishekpandey 1abhishekpandey marked this pull request as ready for review May 13, 2025 13:05
@1abhishekpandey 1abhishekpandey requested a review from a team as a code owner May 13, 2025 13:05
Copy link

@1abhishekpandey 1abhishekpandey merged commit a5619dd into develop May 13, 2025
18 checks passed
@1abhishekpandey 1abhishekpandey deleted the feature/sdk-2923-flutter-bump-the-braze-integration-version branch May 13, 2025 13:36
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.

2 participants