-
Notifications
You must be signed in to change notification settings - Fork 29
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
This library is stable for production? (expo & bare app) #132
Comments
Hi @maoryadin, thanks for reaching out! The library is stable and we're hard at work on a beta release, we don't expect the API to change in major ways. We haven't tested the SDK in Expo applications, but we have seen some of our customers getting it working on Expo. See related GitHub issues: |
Adding native code to Expo can be challenging, as it requires some expertise.
Do you have plans to offer support or develop an Expo module for this functionality? |
Hi @maoryadin , we're currently evaluating whether we will support it, and if so, when. Feedback like yours definitely helps on prioritization. Let's keep this issue open and get a feel of the customer demand. |
@charliesantos |
Hi @ovidb, thanks for the feedback. We will take this into consideration when we align priorities as a team. It's on our radar! |
Does anyone have a POC of working with expo? Ive not had any luck yet, but also very unfamiliar with ios/android configs. The root error im getting after adding to an expo project in expo go is that javascript is trying to access native code. Which makes sense since react-native-twilio is using native modules not provided by the expo go client. So, im doing a custom dev client (still working on that), but I am not sure which native modules I am need to add? Which file in the ios folder shows the modules being used? Any tips would be awesome! |
Yes, I was able to run the package with Expo, I will share the process when I get on my computer (probably on Sunday). |
I was able to make a bit more progress. For others that might be trying to figure out the managed Expo path here is my journey so far: After looking at this: #143 I realized that this project itself is doing the pushkit registration, so that is not something I need to try to add in manually. So, what I did:
I need to setup the call handling and the incoming call notification still, but excited about being able to do an outbound call, without needed to 'eject' from expo To all those building the project, thanks for the effort on this! |
@dwbelliston Hi there, were you able to set up incoming calls? I have trouble with them. Outgoing works fine, but I am not receiving Voice.Event.CallInvite on IOS and Android. Also, I am not sure how it has to work. Will the native incoming call screen/notification show by default on Android/IOS or do I have to do some additional setup? |
Hey @MykolaKobetiakCloudGenie - sorry for the delay, I didnt make any more progress on this. A while back I reached out to the Twilio team and they mentioned they are going to be adding some more examples of how to handle incoming calls and so I decided to wait until those were available. Not sure the status of it now |
Thank you for your reply @dwbelliston |
Hi all, thanks for the vibrant community discussion. As @dwbelliston mentioned, we were working on more examples for how to handle outgoing and incoming calls. Please see the Reference App for more details. |
An example app with expo would be very helpful. |
Hey! Looks like this app has been making steady progress. Would one of the owners be willing to give a little update on stability/roadmap? Really eager to start building on this, but hesitant due to the beta tag. Seriously though, thanks for the effort! |
@dwbelliston PM here, we're preparing to remove the Beta tag and release to GA in the next week or so (very close!). This will be a first class SDK flavor in the Twilio Voice product suite. It's production ready as-is as well so hopefully that removes any concerns around deciding whether or not to start building on it. We'd love to hear your feedback on how to improve for future roadmap considerations as you and team get in there and start getting your hands dirty! |
@MykolaKobetiakCloudGenie yes it will be, it's currently baked into the GA release that is coming shortly |
So excited to use it! Just in time for our roadmap priorities too. Will dive in and provide feedback, if you want/need a use case for a niche tech startup that is using it to offer compliance text/calls to financial advisors happy to talk. |
Hey @amitava82 thanks for bringing up your concerns about our documentation. We're always looking for ways to help onboard and make our product as easy to use. We have a migration guide that's performing double duty as supplementary Android documentation: https://github.com/twilio/twilio-voice-react-native/blob/main/docs/migration-guide-beta.4.md But I understand it doesn't have very good visibility. As a customer, would you like to see this replaced or made more visible (i.e. through our readme), or is this document insufficient in your opinion? What other changes would you like to see in our docs? |
Just FYI @amitava82 we saw your comment in #295 and we acknowledge and understand. Let's see what we can do to improve the user experience for everyone. |
Hi all, thanks for your patience. We have released We're still working on improving the docs, please stay tuned for that! |
Could help me am trying run it on android using expo, what are the steps you followed? your help is appreciated |
Hey, so this video from the expo team is really helpful for learning how to do a dev build: https://www.youtube.com/watch?v=LUFHXsBcW6w Should be a solid start for getting things running |
There is something missing. With those steps and dev client, it throws error on app start
|
are you running on android, cause i get the same on android |
Yes |
check this #348 (comment) am still trying to figure out, but he got to work |
That is for bare react native, not expo. |
check this out https://docs.expo.dev/bare/installing-expo-modules/ maybe we have to manually edit android modules |
I seem to be getting this issue as well. It was caused by the changes made from beta 3 to beta 4. Haven't found a way to fix the issue yet on React Native. |
Has anyone got incoming calls working with expo? Happy to pay for consultation. |
Hi folks, First off, this is a great library and very much needed for Twilio. I just wanted to mention that without official library support for Expo via a config plugin, a lot of us reading this are probably doing redundant work by rolling our own. Scanning this repo, I haven't found any published code for a working plugin so I'm about to try building one myself, but I will post it here and/or make a PR if I'm successful. For the maintainersI think if you're a React Native library and you don't support Expo directly, your target audience is only a small minority of actual React Native users, since Expo is dominant in the RN space and is the recommendation from the actual RN docs! The good news is, it's not a lot of effort to support Expo anymore. You just need to build a config plugin, as others have mentioned. It's a small amount of JS to inject this already-functional React Native library's code into Expo's hidden Possibly Helpful Resources
I will try to update here and keep this thread going. Thanks! |
I completely agree with you, @hueter! I understand that Expo support is definitely needed for this SDK, and it is currently on our roadmap. Please stay tuned, and let's keep this thread going! |
Updating as promised! iOS works with a simple config plugin 🎉I was able to get calling working for iOS, inbound and outbound, using a simple Expo config plugin. As mentioned above, I based my code off the official React Native Callkeep support from Expo. Here's a gist to demonstrate what worked for me. Android is difficult because of custom native code setup 🤔The Android setup is significantly more challenging, and I haven't figured it out yet. This is due to the "Native code" docs:
For this, an Expo config plugin is not sufficient, and we need an Expo Module. Luckily, Expo modules expose Android lifecycle listener callbacks, which should be enough to do the "native code" setup for this library. In fact, this might make this library easier to install in Expo projects than bare React Native projects because no native code editing would be necessary. I wasn't able to create my own module, however, because I wasn't able to add Click to expand!package expo.modules.twiliovoicereactnative
import android.app.Application
import com.twiliovoicereactnative.VoiceApplicationProxy // this line fails
import expo.modules.core.interfaces.ApplicationLifecycleListener
class TwilioVoiceReactNativeApplicationLifecycleListener : ApplicationLifecycleListener {
private val voiceApplicationProxy: VoiceApplicationProxy
override fun onCreate(application: Application) {
voiceApplicationProxy = VoiceApplicationProxy(application)
voiceApplicationProxy.onCreate();
super.onCreate();
}
override fun onTerminate() {
voiceApplicationProxy.onTerminate()
super.onTerminate()
}
} I'm a bit out of my depth here with Android development, but I might have to fork this repo and make an Expo module within the source code here. ConclusionIt shouldn't be too difficult to support Expo given that iOS works as a config plugin and Android can tap into the lifecycle callbacks provided by Expo. I'm going to visit the Expo discord to see if there is a workaround to have a local dependency. |
Any idea how we intergrate with android guys? thank you |
@hueter so you are thinking if this project was put on Maven, then the expo module path would be possible? Looks like twilio has put projects on maven, so seems like it could happen: |
Possibly, if we cannot import the package already installed in But yeah we just need it so |
Okay, are you trying with a local expo module? I dont know the android world well, so this may not be relevant.. but looking at the reference app here: https://github.com/twilio/twilio-voice-react-native-app/blob/main/app/android/build.gradle#L32 Looks like there is an import from node_modules. Do you think that could be the 'import' we need in the modules |
@hueter the module path seems like the right approach based on the docs page about the Android lifecycle listeners you shared above:
Just sharing this for others to easily see. |
Ive been trying to get a local expo module setup to do the setup mentioned here: https://github.com/twilio/twilio-voice-react-native/blob/main/docs/getting-started.md I am running into same issue mentioned above by @hueter, the I tried many different configs with the |
I was able to do an and then the files found here were helpful to reference to plug in Im hoping ill be able to keep working down this path, of using prebuild at least to get it working. But some help and guidance on how to do the expo module would be a big win. Thanks! Hopefully these comments are helpful to others find a path forward too. Was able to place a call using this setup on Android. Have not tried inbound yet. |
@mhuynh5757 just checking if you saw the ask about putting this project into Maven, so we can explore working it into an expo module? |
Hi @dwbelliston thanks for putting in the leg work and researching Expo support, this is great feedback/info and will help us tremendously down the line as we try to prioritize Expo support in our roadmap. We will be looking into all the requirements for Expo support with respect to Maven. |
This library is stable for production? i am wondering if it would work with expo/react native bare app.
The text was updated successfully, but these errors were encountered: