最近项目组要搞重构,之前只有 Android 端,现在的要求是 Android 和 iOS 都可以用。项目比较庞大,总代码行数在 30W+(包括 google 库),其中大部分代码是业务逻辑。项目是什么名字这里不方便说,总之是一个业务逻辑十分庞大的工具类 App,不涉及金融。 目前的跨端方案有大概几种:ReactNative、Weex、Flutter 以及 WebView 容器的 Hybrid。Hybrid 基本上可以直接否掉,App 对性能有一定的要求,所以大概只能在前面三者里面选。
首先:ReactNative 和 Weex 都使用 JavaScript 语言进行开发,这样就会有一个问题,弱类型语言在修改参数类型的时候,如果出错的话不会在编译时候报出来。由于项目比较庞大,每次发版不可能把每一个功能点都回归到。万一修改了一个参数类型,影响没有回归到的功能的话,就可能影响整个线上。那么 TypeScript 是否可以解决这个问题?
如果 TS 可以解决上面的问题,那么 ReactNative 和 Weex 的社区环境怎么样呢,ReactNative 有 20 多万的 userby,weex 只有 9 个。据说 weex 迁到了 Apache,可能有一定的影响。如果要选择,要考虑以下几点:
那么大家更倾向 ReactNative 还是 Weex 呢?
那么说说 Flutter: Flutter:Flutter 使用 Dart 语言构建,可以规避上面的问题。我个人更倾向于 Flutter,毕竟上面的坑已经趟的差不多了,除了热更新基本都可以实现。但是 Flutter 毕竟是个新鲜的产物,公司的架构委员会可能不会批准,但是回过头想想,Android 刚出世的时候还不是坑一大堆,毕竟社区活跃呀,坑多人更多呀,坑总要有人或者公司带头填,不过大环境下的架构师都会选择稳定(坐享其成!),毕竟是个出了问题就涉及到背锅。
一线开发不好做呀,既要考虑技术要点,又要临危受命考虑领导能不能挺你!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.