Aur*_*ora 149 exponentjs expo
来自世博会网站
Expo允许Web开发人员通过JavaScript编写一次,构建真正适用于iOS和Android的本机应用程序.
这不是React Native的作用吗?有什么不同?
bre*_*tne 177
我在世博会工作!
在编写代码时Expo编写React Native代码.Expo有两个主要部分:
1)expo-cli:用于创建项目,查看日志,在设备上打开,发布等的开发人员工具.
2)Expo客户:您的手机上的应用程序,让你打开,而你对他们的工作你的项目,而无需经历XCode或者Android Studio,也可以让其他人查看它们呢!如果你发布它expo-cli,人们可以随时通过ExpoAndroid或iOS上的客户端访问它,如果登录到它发布的同一帐户.最后,我们还可以构建独立的应用程序,以便人们不必使用Expo客户端打开它,如果您愿意,您可以分发到应用商店和商店.
因此,Expo是一组建立在/周围的工具React Native.这些工具依赖于我们坚持的一个关键信念Expo:只要您拥有一套全面的API,就可以构建大多数应用程序,而无需编写本机代码Javascript.
这很重要,因为React Native您可以随时下载到本机代码.这有时非常有用,但它需要付出代价:如果你想要他们测试它们,你需要向人们发送你的二进制文件,世界另一端的人不能只是在你工作的时候点击链接打开它在它上面你不能只需点击一下即可发布它,以便有人访问它,就像你在浏览器中一样.
有了Expo,我们建议尽量避免降低到本机代码.正如我上面提到的,我们认为,通过一整套可用的API Javascript,对于大多数应用程序来说,这不是必需的.因此,我们的目标是提供这套全面的API,然后构建可以在共享本机运行时的世界中存在的所有可怕工具.
但是,如果您必须发现绝对是本机的,那么您可以ExpoKit继续使用Expo提供给您的本机API,同时具有与任何本机项目相同的控制级别." ExpoKit是一个Objective-C和Java库,它允许您将Expo平台和现有Expo项目用作更大的标准本机项目的一部分." 在这里阅读更多.
Ben*_*nke 68
我试图对世博会员工的文档和答案进行总结:
React Native init:
优点:
缺点:
世博会
优点:
缺点:
我希望我能总结一下最重要的观点.请随意添加额外的积分.
资料来源:https ://code.tutsplus.com/tutorials/detaching-expo-apps-to-expokit-concepts--cms-30661 https://github.com/react-community/create-react-native-app/ issue/516#issuecomment-373629114 https://docs.expo.io/versions/latest/guides/detach.html(一般官方文件)
gum*_*ins 22
它在官方的世博文档中有解释
世博会有点像Ract for React Native.为您设置了很多东西,所以开始并走上正确的道路更快.
使用Expo,您不需要Xcode或Android Studio.您只需使用您熟悉的任何文本编辑器编写JavaScript(Atom,vim,emacs,Sublime,VS Code,无论您喜欢什么).您可以在Mac,Windows和Linux上运行XDE(我们的桌面软件).
以下是Expo为您提供的一些即时工作的东西:
支持iOS和Android
您可以直接在iOS和Android上使用在Expo中编写的应用程序.您不需要为每个过程单独构建一个过程.只需在iOS或Android(或计算机上的模拟器或模拟器)中从App Store打开Expo Client应用程序中的任何Expo应用程序.
推送通知
推送通知在iOS和Android上开箱即用,使用统一的API.您不必设置APNS和GCM/FCM或配置ZeroPush或类似的东西.我们认为我们已经让它变得如此简单.
Facebook登入
这可能需要很长时间才能自己正确设置,但您应该能够在10分钟或更短的时间内在Expo上使用它.
即时更新
只需单击XDE中的"发布",即可在几秒钟内更新所有Expo应用程序.你不必设置任何东西; 它只是这样工作.如果您不使用Expo,则可以使用Microsoft Code Push或针对此问题推出自己的解决方案
资产管理
图像,视频,字体等都通过互联网动态分发.这意味着它们可以即时更新,并且可以即时更改.世博会内置的资产管理系统负责将您的仓库中的所有资产上传到CDN,以便他们能够快速加载任何人.
没有世博会,正常的做法是将资产捆绑到您的应用程序中,这意味着您无法更改它们.或者你必须自己管理将资产放在CDN或类似的东西上.
更新到新的React Native版本更容易
我们每隔几周就会发布一次新的世博会.如果您愿意,可以保留旧版本的React Native,或升级到新版本,而无需担心重建应用程序二进制文件.您可以担心在自己的时间升级JavaScript.
但没有原生模块......
关于Expo的最大限制是,如果不拆分和使用ExpoKit,就无法添加自己的原生模块.
Seb*_*ber 13
Brent Vatne的答案很好,但我想补充一些细节.
React Native没有提供开箱即用的所有JS API,只提供了大多数原始功能.React Native开发人员应该使用Android Studio/XCode链接其他本机库.Expo旨在增强RN并提供您最常见需求所需的所有JS API.它基本上是一组定义良好的原始库,已经为您打包在一个库中:ExpoKit.有时这些库实际上已经存在于RN世界中,并集成到ExpoKit中.
同样重要的是要注意到世博团队不能将每个lib都包含在ExpoKit中(这可能会造成一些挫败感),因为hello world app的大小会增加,因为它会发送大量不会被使用的API在大多数应用程序
与其他系统(CodePush ...)一样,Expo提供了一个通过无线方式更新您的应用程序的系统.这意味着您在CDN上传JS包,移动应用程序将在下次启动时自动下载并使用新的JS(无需从商店请求发布/审核).
Expo提供了一个CLI工具来上传/管理其CDN上的JS包.对于开发,您还可以选择成为CDN并在localhost上托管JS包.而XDE只是CLI上的可视化包装器.
Expo客户端是一个通用客户端,允许加载任何与Expo兼容的应用程序.所有的Expo应用程序都共享完全相同的本机运行时(RN + ExpoKit),唯一的区别是我们给它们的JS.您发布到应用商店的Expo应用会将您的JS捆绑网址硬编码.Expo客户端以特定方式构建,以便您可以通过扫描QRCode或提供URL来选择加载JS的URL.
请注意,此客户端还可以从localhost加载JS包,并使您的开发体验更轻松:不需要XCode或Android Studio,并且可以更快地在手机上运行您的第一个Hello World(从几小时到几分钟).你可以在没有Mac的情况下在iPhone上进行开发,设置需要2分钟.
实际上,由于Expo SDK可以升级,Expo客户端包含一个兼容层,因此它可以运行最后5个SDK版本.
由于所有Expo应用程序共享相同的本机代码,Expo可以轻松地为您构建这些应用程序.他们创建了一个云构建服务.
区分由Expo构建的2个应用程序的主要事情只是应用程序应该下载要运行的JS包的硬编码URL.
Expo为您做了一些其他的事情,比如提供一种声明性的方式来设置应用程序图标,方向,权限,API密钥,帮助您设置推送通知,配置配置文件......许多设置必须在应用程序的构建时进行硬编码,并且可以不能在空中改变.
React Native与Cordova类似.它不是相同的视图技术(native vs webview),但它们都允许你从javascript控制本机功能,并且都提供了一个插件系统,以便开发人员可以轻松添加新的JS /本机绑定.
PhoneGap与Expo类似.他们都尝试使用一组预定义的其他本机插件来丰富它们构建的底层平台的原始API.PhoneGap还提供构建服务,并且只要您使用已批准的插件,就可以使用通用客户端.
如你所见,世博会是一套工具.最后,它允许轻松开发,共享和发布您的移动项目的商店.它与PhoneGap体验非常相似(但更好,更少混淆).
我将明确推荐任何新的React Native绿地项目的Expo,除了以下两种情况:
关于Expo和React Native CLI的优缺点的答案已经完成。我想提一点,作为我的个人经历。
Expo在项目中默认包含许多模块,这使得使用它更加容易。但它在生产阶段有一个很大的问题,因为构建的 Android 和 iOS 版本的体积太大。例如,如果您有一个带有“Hello, World!”的页面,则APK文件大小约为19 MB。在 React Native CLI 中拥有相同的项目将导致应用程序大小为6 MB。
因此,如果您想开发商业应用程序,我个人不建议使用 Expo。
博览会CLI
优点:-
 1. No need to install Android studio and Xcode for start building mobile app.
 2. No requirement of high configuration machine for development.
 3. Mobile ui easily check on both devices android and iphone using barcode scanning.and some time you can check on online iphone and android simulators.
 4. fast development.
缺点:-
 1. Native dependency can not add on expo because expo project don't have ios and android folder so here expo is bounded.
 2. Making apk and ipa are to difficult  using expo.
 3. Size of the apk/ipa is huge
反应本地Cli
优点:
 1. Easily add native dependency for android and ios because this project structure have ios and android folder.
 2. Apk and ipa build making is easy rather than expo.
Note":- React Native cli is right approach to started work on react native framework.
缺点:-
1. High configuration machine is require.
2. Adding dependency some time more difficult but good.
3. Required basic knowledge of android folder structure and ios folder structure but from this learn more things.
您可以根据需要选择任何方法。
小智 6
Expo 是React Native CLI的包装器,它在幕后做一些事情,以方便开发人员。Expo 解决的最常见问题是开发人员不必担心 React Native CLI 中经常出现的库链接问题。Expo 现在提供了大量的库,这对于稳健的开发非常有帮助。Expo 的好处之一是您可以通过 Expo 移动应用程序开发适用于 Android 和 iOS 的应用程序,而无需使用 Mac。
\n尽管有很多好处,但使用 Expo 也有一些缺点:
\n| 归档时间: | 
 | 
| 查看次数: | 47095 次 | 
| 最近记录: |