我承认我对那些允许您使用 Web 框架编写应用程序的框架非常感兴趣,因为它们会施展魔法将它们变成您的原生应用程序。这里有很多参与者。您有 NativeScript、Cordova、PhoneGap、Tabris、React Native 和 Flutter。对于桌面应用程序,我们有 Electron。
现在有趣的是,通过关注它们的重点来了解哪些对这些框架很重要。 Hummingbird 是 Web 版的 Flutter。(除了我们 今年早些时候发布的一篇文章 之外,Bendworks 博客上还 有一系列关于 Flutter 的有趣文章。)其理念是,由于框架的存在,您获得了超高的性能,并且从理论上讲,您已经构建了一个可以在 Web 和原生环境中运行的应用程序。我不知道有任何我可以指出的真正成功的案例,但这似乎是一个很棒的可能性。
Nicolas Gallagher 一直是 Web 版 React Native 的坚定支持者。
这些框架构建的应用程序与使用 Java 或 Kotlin 构建的应用程序在效率方面是否存在任何差异?
这取决于您所说的效率是什么——如果您指的是性能,那么通常您通过为 Android 使用 Java/Kotlin 或为 iOS 使用 Swift/ObjC 来编写应用程序会获得更好的性能。像 React Native 这样的东西实际上会编译成这些语言,但仍然需要通过 JavaScript “桥” 进行通信。其他一些则呈现相当于增强的 Web 视图(失去了原生的“感觉”)。
根据您作为公司或您的应用程序的目标,选择 React Native 之类的东西可以节省您的时间(一次编写,编译到原生/Web)和金钱(JS 开发人员通常比原生开发人员便宜)。但是,如果您的应用程序流程复杂,那么您最终获得的结果可能无法为您的最终用户提供良好的体验。