将expo与RN与自定义本机模块一起使用

时间:2019-09-07 00:49:16

标签: react-native expo

我想尝试expo以加快开发速度。

据说如果使用expo,则不能使用本机模块。
但是,如果您FactoryBot.define do factory :user, class: "User" do email { Faker::Internet.email } password { "bla" } password_confirmation { "bla" } end factory :car, class: "Car" do color { "black" } association :user, factory: :user end factory :truck, class: "Truck" do size { "15" } association :user, factory: :user end factory :bike, class: "Bike" do style { "road" } association :user, factory: :user end factory :listing, class: "Listing" do for_car # default trait :for_car do association :listable, factory: :car end trait :for_truck do association :listable, factory: :car end trait :for_bike do association :listable, factory: :car end end factory :firm, class: "Firm" do for_car # default trait :for_car do association :listable, factory: :car end trait :for_truck do association :listable, factory: :car end trait :for_bike do association :listable, factory: :car end end factory :store, class: "Store" do for_car # default trait :for_car do association :listable, factory: :car end trait :for_truck do association :listable, factory: :car end trait :for_bike do association :listable, factory: :car end end end 或使用eject模式,似乎可以使用本机模块。 (不确定它们是否相同)

或者似乎甚至可以从RN-cli开始并添加博览会功能。

最终我们能做的都一样吗?
apk大小如何?是否可以通过从RN-cli开始并在其顶部添加Expo或弹出来减少20-25M的文件大小?

2 个答案:

答案 0 :(得分:0)

我不认为您可以做到25M文件大小。 但是,如果您需要expo功能以及Native功能,我会给您一个很好的解决方案。

您可以尝试通过Expo进行最基本的设置。

它将要做的是,它将使用react-native init创建一个unimodules项目。 Unimodules将可以使用一些基本的博览会功能,例如permissions等。 将来,如果您想添加其他博览会功能(支持裸应用程序)。 您可以轻松地添加它们。 在expo docs中,您可以检查裸机应用程序中哪些功能可用,哪些功能不可用。 我主要担心的是,裸露的应用尚不支持expo的后台任务。 我总是以此启动我的应用程序。但不利的一面是该应用程序的大小约为30-35mb, 您仍然可以尝试将其最小化 https://medium.com/@aswinmohanme/how-i-reduced-the-size-of-my-react-native-app-by-86-27be72bba640

答案 1 :(得分:0)

Expo具有expo.io提供的一组软件包。使用expo构建的应用具有更大的apk大小,因为我们还捆绑了甚至没有使用过的软件包。这些是expo附带的软件包

https://github.com/expo/expo/tree/master/packages

减小apk大小的最佳解决方案是从构建没有expo的应用程序开始,然后仅添加所需的依赖项。如果您的项目需要EXPO功能,则可以使用Expo Kit

https://docs.expo.io/versions/latest/expokit/expokit/

谢谢