Hacker News new | ask | show | jobs
by martinsnow 606 days ago
I love that you asked this question. As someone who has created a few react native applications in the past, non expo environments has felt as an afterthought. I hope the react native team will improve the documentation and encourage the native platform as well as the expo platform. Some of us don't want to be locked into yet another SaaS with questionable payment tiers - when building your own modules and publishing is:

- Easier in the long run

- You're able to ship a far more featureful application if you deal with media and/or VoIP

- Passing apples reviews seem to be faster if you ship the modules yourself in my experience

1 comments

> - You're able to ship a far more featureful application if you deal with media and/or VoIP

Can you expand on this? How does Expo prevent or make it harder for you to ship media- and VOIP-related features?

When you're using expo you cannot bundle your own native extensions. At my previous job we used pjsip. This extension uses JNI and native calls in iOS via objective-c. You can't bundle native extensions when using expo. You're locked to their prebuilt ones.

To use your own extensions you have to eject/or start a new application with their own native libraries. For most of what expo does you can use the unimodules libraries, they're quite good in my experience.

> When you're using expo you cannot bundle your own native extensions. [...] You're locked to their prebuilt ones.

Unless I'm misunderstanding what you're saying, this isn't true at all. At $day_job we have an Expo app with a custom native library and it works just fine; you just have to write an Expo-specific adapter for it and can't use Expo Go in that case.

Source: https://docs.expo.dev/workflow/customizing/