React Native 基于 Expo 开发是什么动物

使用expo开发React Native项目有一段时间了,开发的过程中,踩了不少坑,目前还在踩坑中。在没有了解expo之前,我用React Native写了一个裸的跨平台项目,在安装一些三方和使用原生功能(相机,相册,定位,上传,蓝牙等等),要对andriod和iOS进行不同的适配,(React Native在国内的社区好像并不是很好,很多问题都查不到,只能去看国外论坛),适配的过程中,又费时间,坑还多。而且我之前是做iOS的,对原生应用了解,如果是没有开发过移动端的前端同学。对移动端的访问权限,控制器的压栈原理,状态栏,导航栏等等这些都不是很清楚的话,适配起来会更痛苦。

好在我发现了expo,这玩意儿是真的香。让我们开发一款能在iOS和andriod上跑起来的app,太方便了。调试,权限,真机运行,打包,发布,省了很多事。

这里简单说一下我选择React Native而没有选择Flutter最重要的两个原因:(什么?uni-app?没了解过)

  1. 其实我是做iOS后来转的前端,Flutter对于做过原生移动端开发的人是友好的,但是对于公司其他前端同学可能就不友好了,总而言之就是学习成本低,会JS就行
  2. Flutter在性能上会好一点,但是当一个项目决定使用跨平台技术去开发的时候,我是觉得就不要再去比性能了,就比开发速度吧 显然我觉得React Native的效率比Flutter高。

不过有一说一,在国内Flutter的社区比React Native做的好多了,React Native的不少问题都百度不到,我很多问题都是去github上看论坛,一行一行翻下去,才看到的。所以自己就想记录一下开发中遇到的问题,方便以后自己回看,同时也分享给同样在踩坑React Native的同学