从React切换到React Native时要记住的10件事

如今,Web开发人员对移动开发非常感兴趣,有时甚至没有意识到这是一个完全不同的世界。但是,对React开发人员来说,使用React-Native稍微容易一些,但有一些警告。在本文中,我将分享移动开发人员在从React到React Native的过程中可能遇到的问题。







首先,让我提醒您,React Native(RN)是用于构建移动应用程序的跨平台技术。许多人认为它的主要优点是针对两个应用程序使用单个代码库,但是我认为这不是RN中最有价值的。核心价值是使用React及其所有优势,包括更广泛的Web开发社区。在拥有丰富的React经验之后,React开发人员开始使用React Native来构建移动应用程序是非常有意义的。但是移动世界与网络截然不同。今天,我想分享您在移动开发领域中要牢记的注意事项。



1.屏幕的紧凑性



CSS假定您使用的像素的物理单位为1/96英寸。如果只为台式计算机创建网站,这很有用,但是在为移动设备创建网站时,需要考虑不同的屏幕密度。这就是为什么您需要不同的边距,不同设备的填充以及不同资产(例如图像)的原因。有一篇很好的文章介绍了移动方法。或者,您可以直接参考Android Developer资源



2.导航



Web浏览器通常具有当前页面,用于存储历史记录的后退按钮以及其他锚点。相反,在该网站的移动版本中,我们具有屏幕以及它们之间的导航,它们以清晰的模式进行操作:通过选项卡导航,沿堆栈导航以及回溯。您不能为此使用React-router,但是可以使用React导航库进行响应式导航



React-Native中的动画选项卡导航



3.样式



在移动世界中,CSS将无法正常工作,并且没有适用的解决方案。您不能使用CSS-in-JS,LESS或其他任何方式。相反,您可以使用JSON对象定义组件样式。



注意:



  • 始终使用StyleSheet.create({}),以便React-Native可以缓存样式;
  • Flexbox仍然在这里,只是名称不同。




React-Native的样式示例



4.网络



如果您要使用React(例如Electron)构建网站或桌面应用程序,则可以依靠良好且相当稳定的Internet连接。但是现在我们正在谈论移动设备,并且这里的Internet可能非常慢,不稳定或什至不存在。因此,有必要在开发具有以下特性的应用程序时:连接请求,脱机工作(例如缓存)。在操作过程中连接也可能断开,因此您需要为此做好准备。



5.签名



与可以简单地部署到S3兼容存储的网站不同,必须对移动应用程序进行数字签名,以便电话可以验证开发人员是否受信任。此过程可能非常费力,尤其是对于iOS,在iOS中,您需要为开发人员购买程序,创建应用程序ID,配置文件,生成和导出签名证书...在Android平台上看起来更容易:您可以使用一个命令行或使用以下命令生成所有必要的数据Android Studio并立即分发该应用程序。



6.传播



再说一遍:您不能仅将内容上传到S3或虚拟机。您需要浏览Google Play和App Store或在官方商店之外分发您的应用程序,例如,如果该应用程序是公司的,则仅适用于一个组织的员工。但是,App Store根本不允许将应用程序直接发布到App Store,您将不得不使用某种MDM解决方案,或者仅通过MS App Center,Firebase Distribution等进行分发。



此外,商店中还有许多必须遵循的规则。这些包括图标,图形,用户界面准则,权限,安全性等。



7.工具



您还可以使用VSCode或WebStore甚至Vim进行代码编辑,并使用Chrome作为调试器,也可以使用Xcode和Android Studio获得更多好处,例如日志,监视工具,文件编辑等。您还将喜欢Flipper,Reactotron和其他可加速React-Native工作的工具。





WebStorm IDE中的React-Native



8.模拟器,模拟器和设备



对于Web开发,多个浏览器就足够了。对于移动开发,您需要在移动设备上运行代码:可以使用手机,但是不太可能同时拥有Android和iOS的设备。



好消息:如果您在Mac上,则可以使用Android模拟器(可以从Android Studio下载并运行)或从Xcode构建的iOS模拟器(不,至少在合法情况下,您不能在任何其他硬件上安装iOS模拟器) )。这是一种全新的体验,但很有趣。







9.与本机代码的关系



您的js代码将与您同在,但还将与本机代码(Kotlin,Swift)交互。该应用程序必须正确链接,否则可能会崩溃或发生故障。好消息是,从0.60版本开始使用React-Native时,大多数外部库都会自动进行链接。



React-Native应用程序的架构



10.代码重用



好消息,终于!如果要同时构建Web应用程序和移动应用程序,则可以重用一些代码。您绝对可以重用整个域和网络代码,因为Internet或移动设备没有特定性。您很可能也可以重用业务逻辑,但是可能性很小。



我希望在以后的文章中仔细研究这些要点。



All Articles