已经使用过React Native?
本指南旨在为已经使用过React Native的开发人员提供有关使用Expo时将遇到的一些关键概念,资源和差异的快速概述。
什么是Expo?
Expo提供了一个共享的本机运行时,因此您不需要编写本机代码,而是专注于使用JavaScript编写React应用程序。您不必担心iOS或Android特定设置,甚至无需打开Xcode。Expo拥有自己的工作流程,包括Expo CLI(命令行界面)和Expo Dev Tools(Web UI),使开发和部署变得简单。
如果您曾经升级过React Native或本机模块,那么您只需更改版本号即可享受Expo为您无缝执行此操作的能力。
Expo通过提供由团队维护的其他经过实战考验的模块扩展了React Native平台。这意味着您花费更少的时间来构建您的应用。
如果您经历过不得不升级模块或安装类似 react-native-maps的麻烦,那么当事情正常时,您会感激不尽。
Expo还提供OTA(空中下载)热更新和推送通知服务。
如果你曾经遇到过在你的应用程序中发现拼写错误并且必须等待Apple批准更改的情况,你会欣赏OTA更新 - 这些更改会在你运行时立即出现expo publish!您也不仅限于文本,这也适用于图像和配置更新等资产!
无需将应用重新构建或重新部署到App and Play商店。如果您之前使用过,那就像Code Push一样。但是,还是有一些限制,在这里阅读这些。
Expo提供了一个我们称之为manifest的共享配置文件。通常,您需要更新Xcode plist或Android Studio xml文件以处理更改。例如,如果您想锁定屏幕方向,更改图标,自定义启动画面等,或添加/删除您在app.json 里配置执行操作的权限。
您可以在app.json设置在Xcode / plist文件或Android studio / xml文件的配置。例如,如果要锁定方向,更改图标,自定义初始屏幕,添加/删除权限 (在独立应用程序中),配置Google地图和其他服务的密钥,您可以在app.json中设置。请参阅此处的指南。
通过Expo,您可以在通过Expo Client(可在App / Play商店中购买)的任何地方与世界任何地方的任何人共享您的应用程序。扫描二维码,或输入一个电话号码,我们会向您发送一个链接,该链接会立即将您的应用加载到您的设备上。
您无需通过iTunes连接注册多个外部测试人员,您可以轻松下载Expo客户端应用程序,并立即在手机上安装工作版本。
我们讨论了我们可以在其中设置权限的app.json,包括Permissions API。 app.json可以设置在由Android独立应用程序用于相机访问,地理位置,指纹等。另一方面,API权限用于在运行时请求和验证访问权限。它提供了一个简单的API,可以询问用户推送通知,位置,相机,录音和联系人。
Expo如何运作?
由于您使用Javascript编写代码,我们将其捆绑并从S3提供。每次发布应用时,我们都会更新这些资源,然后将其推送到您的应用,这样您就可以获得最新版本。
在Expo上发展
默认情况下,我们通过tunnel服务从Expo CLI提供应用程序(我们目前使用ngrok) - 这意味着您不必将设备连接到计算机,甚至不必连接到同一个房间或国家/地区(或者星球?我想它应该可以在太空中工作)作为开发机器,你仍然可以重新加载,使用热模块重新加载,启用远程JS调试,以及通常使用React Native可以做的所有事情。有一点需要注意的是,使用tunnel比使用LAN地址或本地主机要慢一些,所以如果可以的话,应该使用LAN或localhost。了解如何在Expo CLI中进行配置。
Expo将您的设备日志流式传输到Expo CLI和Expo Dev Tools,因此您无需运行adb logcat或与iOS等效 - console.log / warn /error来自任何连接到您的应用程序的设备的消息,将自动显示在您的终端和Expo Dev Tools中。
Expo不能做什么
有时,Expo不提供对您可能需要的本机模块或API的访问权限。在这种情况下,您可以eject 并使用ExpoKit。这允许您继续使用Expo的基础,但允许您创建和使用任何自定义本机模块。
部署到App / Play商店
当你准备好了,你可以运行expo build:ios或者expo build:android,Expo将构建你的应用程序并输出你需要提交的二进制文件的链接。然后你就可以使用Application Loader for iOS之类的东西,或直接上传适用于Android的APK。
如果您希望在自己的计算机上构建应用程序,可以按照以下步骤操作。
有用的工具和资源
Expo Snack
直接从浏览器测试和共享Expo功能的最佳方式。将手机指向QR码,您就可以在浏览器中构建沙箱环境并直接在设备上进行测试。
如果有什么你不理解或希望了解更多,这是一个很好的起点。
从Expo团队或社区获得帮助的最快方式
Expo Client和SDK都是开源的。如果您有什么想要解决的问题,或想出我们如何实现我们的原生模块,欢迎您自己查看代码!
有用的命令
在Expo中开发时,您可以选择使用命令行工具。以下是我们的一些朋友最喜欢的命令和工作流程:
expo start -c --localhost --ios
启动expo服务器,清除缓存,仅在localhost上加载并在iOS模拟器上打开
expo start --tunnel
启动expo服务器(不清除缓存)并在隧道上运行expo,以便与任何人共享!
expo send -s 2245551234
发送链接到朋友的电话号码,这样他们就可以在手机上查看我正在处理的内容
网友评论