探讨 React Native 与小程序结合的技术架构
用我掉过的头发和修过的 bug,聊聊开发者对 RN 的爱恨情仇吧...

先说我们会选择 RN 最主要的原因:
1、跨平台省钱大法好:我记得当年团队组长拍着桌子说“安卓和 iOS 各招 5 个人”的画面,后面一个同事用 RN 写了个 Demo,成功把团队砍到 3 人。react native 的跨平台大法让同一套代码跑双端,是真的省心好用。
2、热更新堪比后悔药:RN 的热更新是我非常喜欢的能力,基本可以让我像做 PPT 一样随时修改,对比原生每次发版都要跪求 App Store 审核的样子,压力都会小好多。
3、JavaScript 宇宙的通行:RN 上手门槛低,会写网页就能上手 RN,React 生态里的组件库多得像火锅店的配菜。还记得之前用 react-navigation 搭导航栏时,顺手抄了 GitHub 上 5 个开源模板,开发速度是真的顶。

但 react native 也被一堆的同行嫌弃,确实 RN 在某些方面还是存在不少的问题,例如性能、对原生的依赖都让人头大。
例如用 RN 做个静态页面还行,遇到需要疯狂调用相机 API 的 AR 功能,RN 的性能就直接摆烂了。
另外虽然 80%的功能能用 JS 搞定,但遇到蓝牙打印、人脸识别等硬核需求时,还是要含着泪写 Native Modules。
这时候你就会发现:原来自己 JavaScript、Java、Swift 都要会,活被 RN 逼成了传说中的“全干工程师”。其实我发现一个比较神奇的搭配,把 RN 和 FinClip 配合使用。
首先 FinClip 作为小程序容器,能让你把小程序像乐高积木一样嵌入任何 App。

如果有了它,这些场景都能很快被实现:
●用 RN 搭建 App 主干功能,把频繁变动的促销活动页改造成小程序,在发版上再也不用担心每周提交审核了。
●把第三方服务(比如物流查询、客服系统)封装成小程序,比原生 SDK 接入快 3 倍,还能动态更新。●开发团队用 RN 写核心模块,运营团队直接用 FinClip 玩转 H5 和小程序,从此撕逼会议减少 50%
评论