Skip to content
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

Support for a React Native Module #8

Closed
ohsnapitscolin opened this issue Nov 2, 2023 · 1 comment
Closed

Support for a React Native Module #8

ohsnapitscolin opened this issue Nov 2, 2023 · 1 comment

Comments

@ohsnapitscolin
Copy link

ohsnapitscolin commented Nov 2, 2023

Hey all,

I've been referencing this demo pretty heavily as I work to integrate the Ignite SDK into my React Native project. Currently I'm building with Expo, using a managed workflow, with means my android and ios directories are generated by Expo, and can be cleared and regenerated at any time.

As a result, I've been working on creating a separate react-native-ignite (or react-native-ticketmaster) module that I can add to my managed app.

So far, I have pretty everything working (happy to share the code), outside of a few issues:

  1. For iOS, all of the Ticketmaster dependencies are provided by the Swift Package Manager, not CocoaPods. This means that I cannot programmatically add the dependencies to the generated Xcode project. For now, after running expo prebuild -p ios (see more about prebuild here), I've needed to manually open the generated project and install the https://github.com/ticketmaster/iOS-IgniteSDK package to my build. Ideally Ticketmaster could provide the Ignite SDK on CocoaPods as well, which is integrated into the React Native ecosystem and would eliminate this part of the workflow.

  2. For Android, we trying to build my app with the com.ticketmaster.tickets:tickets:3.2.2 dep, I end up needing to add jcenter() to my list repositories. This requires manual configuration of the build.gradle file, as JCenter is no included by default when generating an android project with Expo or React Native. From what I understand JCenter is now deprecated, so it would be ideal if the tickets dep no longer needed it. It looks like the failing dep it's available on JCenter is com.romandanylyk:pageindicatorview:1.0.3..

  3. Also for Android, I'm required to modify my main application's build.gradle file to include dataBinding = true. This seems required, and I'm not sure if there's a way to merge this into the main application with Gradle (or add this option by default using the Expo managed workflow).

Regardless, if we can fix issue 1, I think I've pretty much done a significant portion of the work needed to actually publish a react-native-ticketmaster package that can just be added to a React Native project with npm install. Users would then just need to manually add jcenter() and dataBinding = true to their Android project.

If we can fix 1 and 2 and find a solution for 3, we should be close to fully supporting the Expo managed workflow, where Expo users never need to modify the generated native code at all.

Curious to get thoughts on whether this is something Ticketmaster would want to pursue, and if we think we can offer fixes for the issues above.

@ohsnapitscolin ohsnapitscolin changed the title Support for React Native Module Support for a React Native Module Nov 2, 2023
@TakaGoto
Copy link
Collaborator

atm we are not focused on updating ignite to fully support expo. we will however consider this in the future

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

No branches or pull requests

2 participants