Closed leggomuhgreggo closed 2 years ago
Huge plus one from us here at Pave! This would massively simplify the integration effort for us with Braze. 👍
Hi everyone! It's on our roadmap to do a deep dive into supporting this. We will keep you updated here. Thank you for your patience!
We just upgraded to Expo 43 and are experiencing issues with our previously working config plugin for Braze. Posting here to see if anyone else was experiencing anything similar.
We just upgraded to Expo 43 and are experiencing issues with our previously working config plugin for Braze. Posting here to see if anyone else was experiencing anything similar.
@wesleyorbin Hello, Have you fixed the problem with Expo 43? I'm also trying to integrate with braze in the Expo project without ejecting. Do you mind sharing your plugin code? I haven't dealt with expo plugin before...
Thanks very much!
Hi @fantasyado, we still don't offer formal non-ejected Expo support but it's still on our roadmap (likely target is first half next year). Are you running into issues with a config plugin for Expo 43 specifically, or just looking at how to get started?
Hi @Bucimis I'm looking at how to get started. our project has developed many features on top of Expo, so unless there's no other option we really don't want to eject... Do you think the config-plugin way is doable? Will it be very complicated? Any information is appreciated.
@fantasyado I would follow along with the Expo docs and try it out. Based on what I'm seeing, it may be possible, but you'd likely have to use a mod to edit the AppDelegate
for iOS and MainApplication
for Android.
Hi @iboxgithub. I believe you may have meant to post this in another repo (maybe https://github.com/DoubleSymmetry/react-native-track-player?).
@westhechiang if you have any feedback on Expo Config Plugins, I'd love to hear it! You can message me directly on Twitter @baconbrix or on Discord Bacon#8417
.
I've run the feature request by the team to see if anyone on our side has availability.
Hi everyone 👋 , I'm going to help create an Expo plug-in for appboy-react-sdk
. However, after I read the documentation, I noticed that some parts of the SDK need you to install with the native code. So if you need this feature, please ask the Bazel team for support.
PS: I'll be submitting a PR in the next few days, so stay tuned. 😄
The Braze team has asked that this feature be handled in-house and that existing customers reach out to them directly for support, so we must unfortunately stop working on this feature.
Hi @giautm and @EvanBacon thanks for your interest and willingness to contribute to a React Native/Expo integration.
I'll email you tomorrow to learn more about collaborating on this feature.
Hi ! We are also going to use it at Cajoo, what is the current status of this track ? Thank you very much.
Hi all! At Nayya, we also use Braze + Expo managed workflow, and we've been blocked from using Braze in our React Native app due to the lack of a config plugin.
In order to un-block, we've written a Expo config plugin for Braze 🚀. This plugin is likely not generalized enough to meet the needs of all Braze customers, and it could also certainly use some improvements from subject matter experts at Braze and Expo.
A few shortcomings of note:
eas build
with EAS managed credentials, and has not been tested for other configurations.That being said, we're sharing it as it may be a helpful starting place for other teams looking to write a config plugin until the Braze+Expo teams are able to release one for all customers. And it may be a helpful point of reference for you @davidbielik & @EvanBacon. Happy to chat through the approach and answer any questions.
Hi everyone,
Thanks for your patience on this feature request. I want to provide an update on our plans and timelines:
In August, we plan to be release an initial Expo Plugin which will include support for Content Cards, In-App Messages, Analytics, and Geofences.
Following that release, we'll be working towards adding plugin support for Push (the next month or so).
We'll update here with each milestone, and looking forward to your teams testing out the plugin and providing any feedback!
Hi, we're excited to release the first version of our Braze Expo Plugin! You can find our documentation here.
To get started, simply expo install @braze/expo-plugin
and then pass in your configuration in your app.json
file.
This initial release includes support for:
Next month we'll release our support for Push Notifications in the Javascript layer.
If you have time to test out the plugin, we'd appreciate any feedback you have or improvements we should make prior to the next release.
Thanks to @giautm for your initial draft which we based ours on!
Good news everyone! We're excited to announce @braze/expo-plugin@v0.4.0
and react-native-appboy-sdk@1.38.0
which now support Push Notifications via Braze.requestPushPermission(options)
.
You can read more about how to integrate this in our documentation. We hope this makes your Braze integration easier, with less native coding requirements.
Thanks again for all your feedback to help prioritize this, and if you have any questions or want to report any issues, feel free to open a github issue in our React Native SDK or our new Expo Plugin.
I'm on a team that's fixin to start work on a cross-platform Expo app, intended to replace our three legacy clients. Wanted to inquire whether y'all would consider adding support for Config Plugins, so this library can be used with the Expo Managed Workflow (i.e. without ejecting)
This would enable Expo users to use the Braze/appboy SDK with much less friction
Thanks for your consideration!
Feature Context
Over the past several months Expo has introduced features which enable apps to use external native modules, without ejecting Expo's managed workflow.
The customizations to the iOS and Android code that are required by a given native module are automated, using an AST-based API that Expo provides through "Config Plugins" feature.
These automations (called "mods") are executed during a new "Prebuild" phase, in which boilerplate ios and android directories are created — and then their respective files are altered, based on the instructions in a given modules config plugin. The end result is essentially the same as if you ejected and manually changed the ios/android files.
Here's the Expo blog post announcing Config Plugins and the associated feature-set.
Overview of Proposed Implementation
The process for creating a Config Plugin is detailed here: https://docs.expo.io/guides/config-plugins/#creating-a-plugin
There are a few different "recipes" for how to implement — but the gist of it is:
app.plugin.js
file, at the project root — which serves as a standard entrypoint where expo can resolve the plugin code. [ex:expo-camera
]withFeature
) which accepts aconfig
object that can be used, along with@expo/config-plugins
methods, to implement mods for each platform's native code. [ex:withCamera
]