手里维护了三年的原生项目,最近要做一个新的活动运营模块,产品要求快速迭代、多端同步,最后选了用React Native混合开发,把整个迁移流程踩的坑整理出来给大家参考。
其实很多人对RN混合开发有误解,觉得必须从头用RN重构整个项目,其实完全不用——不管你的原有项目是Java/Kotlin写的Android,还是OC/Swift写的iOS,只要加几个配置就能把RN模块嵌进去,原有代码完全不用动,适合给老项目加新功能。
整个流程其实很清晰,先给你的老项目套个RN的项目壳:根目录建一个文件夹,把原有Android项目放到/android目录,iOS放到/ios目录,然后复制一份RN社区模板的package.json,npm install装完依赖,把node_modules加到gitignore就行。
接下来改配置,Android这边要改settings.gradle,引入RN的Gradle插件,然后在原生代码里用ReactActivity把RN组件挂进去,iOS这边就是改Podfile,把RN依赖加进去,pod install之后在原生控制器里加载RN视图就行。最后跑起Metro服务,就能在原有App里打开RN写的新页面了。

踩过的两个坑给大家提个醒:第一,版本一定要对齐,最好新建一个空的RN项目,把它的Podfile和gradle配置抄过来,不要自己瞎写,我一开始用了网上旧教程的配置,报了一堆版本错,最后抄了最新模板才搞定;第二,如果要做原生和RN的交互,直接用Native Module就行,Android写Kotlin模块,iOS写OC模块,然后通过桥接给RN调用,比WebView灵活太多,性能也好很多。

现在这个模块跑了快三个月,发了十几个版本,每次更新都是热更,不用用户重新下载安装包,开发效率比纯原生快了不少,对于需要快速迭代的运营活动、高频更新的业务模块来说,RN混合开发确实是老项目焕新的好选择。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐