You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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:
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.
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..
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.
The text was updated successfully, but these errors were encountered:
ohsnapitscolin
changed the title
Support for React Native Module
Support for a React Native Module
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
andios
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
(orreact-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:
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 thehttps://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.For Android, we trying to build my app with the
com.ticketmaster.tickets:tickets:3.2.2
dep, I end up needing to addjcenter()
to my list repositories. This requires manual configuration of thebuild.gradle
file, as JCenter is no included by default when generating anandroid
project with Expo or React Native. From what I understand JCenter is now deprecated, so it would be ideal if thetickets
dep no longer needed it. It looks like the failing dep it's available on JCenter iscom.romandanylyk:pageindicatorview:1.0.3.
.Also for Android, I'm required to modify my main application's
build.gradle
file to includedataBinding = 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 withnpm install
. Users would then just need to manually addjcenter()
anddataBinding = 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.
The text was updated successfully, but these errors were encountered: